diff --git a/src/main/java/exopandora/worldhandler/builder/impl/BuilderSignEditor.java b/src/main/java/exopandora/worldhandler/builder/impl/BuilderSignEditor.java index 1be9002..57f5c69 100644 --- a/src/main/java/exopandora/worldhandler/builder/impl/BuilderSignEditor.java +++ b/src/main/java/exopandora/worldhandler/builder/impl/BuilderSignEditor.java @@ -22,7 +22,7 @@ public class BuilderSignEditor extends BuilderData for(int x = 0; x < 4; x++) { - this.sign[x] = this.registerNBTComponent(new ComponentTag("Text" + (x + 1), new SignText(x), SignText::toNBT)); + this.sign[x] = this.registerNBTComponent(new ComponentTag("Text" + (x + 1), new SignText(x), SignText::serialize)); } } diff --git a/src/main/java/exopandora/worldhandler/util/MutableStringTextComponent.java b/src/main/java/exopandora/worldhandler/util/MutableStringTextComponent.java index e3c14f1..f3690f7 100644 --- a/src/main/java/exopandora/worldhandler/util/MutableStringTextComponent.java +++ b/src/main/java/exopandora/worldhandler/util/MutableStringTextComponent.java @@ -1,5 +1,8 @@ package exopandora.worldhandler.util; +import exopandora.worldhandler.builder.INBTWritable; +import net.minecraft.nbt.INBT; +import net.minecraft.nbt.StringNBT; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; @@ -7,7 +10,7 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @OnlyIn(Dist.CLIENT) -public class MutableStringTextComponent extends StringTextComponent +public class MutableStringTextComponent extends StringTextComponent implements INBTWritable { private String text; @@ -74,7 +77,19 @@ public class MutableStringTextComponent extends StringTextComponent return this.getStyle().getFormattingCode() + string; } - public String serialize() + @Override + public INBT serialize() + { + if(this.getUnformattedComponentText() != null && !this.getUnformattedComponentText().isEmpty()) + { + return StringNBT.valueOf(this.toString()); + } + + return null; + } + + @Override + public String toString() { MutableStringTextComponent serial = (MutableStringTextComponent) this.deepCopy(); serial.setText(MutableStringTextComponent.getSpecialFormattedText(this.getUnformattedComponentText())); diff --git a/src/main/java/exopandora/worldhandler/util/SignText.java b/src/main/java/exopandora/worldhandler/util/SignText.java index 4f7f2d1..6a2cac0 100644 --- a/src/main/java/exopandora/worldhandler/util/SignText.java +++ b/src/main/java/exopandora/worldhandler/util/SignText.java @@ -2,6 +2,8 @@ package exopandora.worldhandler.util; import javax.annotation.Nullable; +import exopandora.worldhandler.builder.INBTWritable; +import net.minecraft.nbt.INBT; import net.minecraft.nbt.StringNBT; import net.minecraft.util.text.event.ClickEvent; import net.minecraft.util.text.event.ClickEvent.Action; @@ -9,7 +11,7 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @OnlyIn(Dist.CLIENT) -public class SignText +public class SignText implements INBTWritable { private MutableStringTextComponent text = new MutableStringTextComponent(); private final int line; @@ -62,7 +64,8 @@ public class SignText return this.text.getStyle().getClickEvent() != null && this.text.getStyle().getClickEvent().getAction() == Action.RUN_COMMAND && this.text.getStyle().getClickEvent().getValue() != null; } - public StringNBT toNBT() + @Override + public INBT serialize() { return StringNBT.valueOf(this.toString()); } @@ -80,6 +83,6 @@ public class SignText return this.text.getFormattedText(); } - return this.text.serialize(); + return this.text.toString(); } }