Permalink
Browse files

Fix loading and converting signs in old schematics

* Sign texts not starting with { are never valid json objects, so don't try to parse
* Else try to parse as json, but fall back to read sign text as string if not parseable
  • Loading branch information...
Brokkonaut committed Mar 25, 2018
1 parent 52263ac commit 4d2fe62d97e728d8a90f9af411035b641895b51a
@@ -23,6 +23,7 @@
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSyntaxException;
import com.sk89q.jnbt.StringTag;
import com.sk89q.jnbt.Tag;
import com.sk89q.worldedit.blocks.BaseBlock;
@@ -43,7 +44,17 @@ public void updateNBT(BaseBlock block, Map<String, Tag> values) {
Tag value = values.get(key);
if (value instanceof StringTag) {
String storedString = ((StringTag) value).getValue();
JsonElement jsonElement = new JsonParser().parse(storedString);
JsonElement jsonElement = null;
if (storedString != null && storedString.startsWith("{")) {
try {
jsonElement = new JsonParser().parse(storedString);
} catch (JsonSyntaxException ex) {
// ignore: jsonElement will be null in the next check
}
}
if (jsonElement == null) {
jsonElement = new JsonPrimitive(storedString == null ? "" : storedString);
}
if (jsonElement.isJsonObject()) {
continue;
}

0 comments on commit 4d2fe62

Please sign in to comment.