Collection.java 1.7 KB

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