diff --git a/src/main/java/com/projectswg/common/data/customization/CustomizationString.java b/src/main/java/com/projectswg/common/data/customization/CustomizationString.java index 65a7003..ab12dab 100644 --- a/src/main/java/com/projectswg/common/data/customization/CustomizationString.java +++ b/src/main/java/com/projectswg/common/data/customization/CustomizationString.java @@ -72,13 +72,18 @@ public class CustomizationString implements Encodable, Persistable { @Override public void save(NetBufferStream stream) { stream.addByte(0); - stream.addRawArray(encode()); // No length is prepended when adding a raw array + stream.addMap(variables, (entry) -> { + stream.addAscii(entry.getKey()); + stream.addInt(entry.getValue().getValue()); // Awful coincidence + }); } @Override public void read(NetBufferStream stream) { stream.getByte(); - decode(NetBuffer.wrap(stream.array())); + stream.getList((i) -> { + variables.put(stream.getAscii(), new CustomizationVariable(stream.getInt())); + }); } /** diff --git a/src/main/java/com/projectswg/common/data/customization/CustomizationVariable.java b/src/main/java/com/projectswg/common/data/customization/CustomizationVariable.java index 06d7347..717a320 100644 --- a/src/main/java/com/projectswg/common/data/customization/CustomizationVariable.java +++ b/src/main/java/com/projectswg/common/data/customization/CustomizationVariable.java @@ -30,6 +30,13 @@ public class CustomizationVariable { private int value; + public CustomizationVariable() { + } + + public CustomizationVariable(int value) { + this.value = value; + } + /** * * @return {@code true} if the value is reserved by UTF-8 and escaping it