diff --git a/src/main/java/carpet/script/value/FormattedTextValue.java b/src/main/java/carpet/script/value/FormattedTextValue.java index 529c340a..70546d71 100644 --- a/src/main/java/carpet/script/value/FormattedTextValue.java +++ b/src/main/java/carpet/script/value/FormattedTextValue.java @@ -27,7 +27,7 @@ public class FormattedTextValue extends StringValue @Override public Value clone() { - return new FormattedTextValue(text); + return new FormattedTextValue(text.shallowCopy()); } @Override diff --git a/src/main/java/carpet/script/value/Value.java b/src/main/java/carpet/script/value/Value.java index 679a9263..93e32183 100644 --- a/src/main/java/carpet/script/value/Value.java +++ b/src/main/java/carpet/script/value/Value.java @@ -4,6 +4,8 @@ import carpet.script.exception.InternalExpressionException; import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; import net.minecraft.nbt.Tag; +import net.minecraft.text.BaseText; +import net.minecraft.text.LiteralText; import java.util.ArrayList; import java.util.List; @@ -79,6 +81,14 @@ public abstract class Value implements Comparable, Cloneable public Value add(Value o) { String lstr = this.getString(); + if (o instanceof FormattedTextValue) + { + if (lstr == null) + return ((FormattedTextValue) o).clone(); + BaseText newText = new LiteralText(lstr); + newText.append(((FormattedTextValue) o).getText().shallowCopy()); + return new FormattedTextValue(newText); + } if (lstr == null) // null return new StringValue(o.getString()); String rstr = o.getString();