Collection.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package me.lortseam.completeconfig.data;
  2. import lombok.Getter;
  3. import lombok.extern.log4j.Log4j2;
  4. import me.lortseam.completeconfig.data.text.TranslationIdentifier;
  5. import net.minecraft.text.Text;
  6. import org.apache.commons.lang3.ArrayUtils;
  7. import org.apache.commons.lang3.StringUtils;
  8. import org.spongepowered.configurate.CommentedConfigurationNode;
  9. import java.util.Arrays;
  10. import java.util.Optional;
  11. @Log4j2
  12. public class Collection extends Node {
  13. private final TranslationIdentifier[] customTooltipTranslation;
  14. @Getter
  15. private final String comment;
  16. Collection(TranslationIdentifier translation, String[] customTooltipTranslationKeys, String comment) {
  17. super(translation);
  18. customTooltipTranslation = ArrayUtils.isNotEmpty(customTooltipTranslationKeys) ? Arrays.stream(customTooltipTranslationKeys).map(key -> translation.root().appendKey(key)).toArray(TranslationIdentifier[]::new) : null;
  19. this.comment = !StringUtils.isBlank(comment) ? comment : null;
  20. }
  21. public Optional<Text[]> getTooltipTranslation() {
  22. return (customTooltipTranslation != null ? Optional.of(customTooltipTranslation) : translation.appendTooltip()).map(lines -> {
  23. return Arrays.stream(lines).map(TranslationIdentifier::toText).toArray(Text[]::new);
  24. });
  25. }
  26. @Override
  27. public void fetch(CommentedConfigurationNode node) {
  28. if (comment != null) {
  29. node.comment(comment);
  30. }
  31. super.fetch(node);
  32. }
  33. }