diff --git a/src/main/java/us/myles/ViaVersion/ViaConfig.java b/src/main/java/us/myles/ViaVersion/ViaConfig.java index af23dca75..7a91146a3 100644 --- a/src/main/java/us/myles/ViaVersion/ViaConfig.java +++ b/src/main/java/us/myles/ViaVersion/ViaConfig.java @@ -164,4 +164,9 @@ public class ViaConfig implements ViaVersionConfig { // Collision has to be enabled first return isPreventCollision() && plugin.getConfig().getBoolean("auto-team", true); } + + @Override + public boolean isForceJsonTransform() { + return plugin.getConfig().getBoolean("force-json-transform", false); + } } diff --git a/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java b/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java index 9682564dc..0c9a64bec 100644 --- a/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java +++ b/src/main/java/us/myles/ViaVersion/api/ViaVersionConfig.java @@ -186,4 +186,11 @@ public interface ViaVersionConfig { * @return The integer id */ int getPistonReplacementId(); + + /** + * Force json transform + * + * @return True if enabled + */ + boolean isForceJsonTransform(); } diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java index e92dbd03f..ac019978b 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocol1_9to1_8/Protocol1_9TO1_8.java @@ -41,9 +41,7 @@ public class Protocol1_9TO1_8 extends Protocol { line = "{\"text\":\"\"}"; } else { if ((!line.startsWith("\"") || !line.endsWith("\"")) && (!line.startsWith("{") || !line.endsWith("}"))) { - JsonObject jsonObject = new JsonObject(); - jsonObject.addProperty("text", line); - return gson.toJson(jsonObject); + return constructJson(line); } if (line.startsWith("\"") && line.endsWith("\"")) { line = "{\"text\":" + line + "}"; @@ -52,12 +50,22 @@ public class Protocol1_9TO1_8 extends Protocol { try { gson.fromJson(line, JsonObject.class); } catch (Exception e) { - System.out.println("Invalid JSON String: \"" + line + "\" Please report this issue to the ViaVersion Github: " + e.getMessage()); - return "{\"text\":\"\"}"; + if (ViaVersion.getConfig().isForceJsonTransform()) { + return constructJson(line); + } else { + System.out.println("Invalid JSON String: \"" + line + "\" Please report this issue to the ViaVersion Github: " + e.getMessage()); + return "{\"text\":\"\"}"; + } } return line; } + private static String constructJson(String text) { + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("text", text); + return gson.toJson(jsonObject); + } + public static Item getHandItem(final UserConnection info) { if (HandItemCache.CACHE) { return HandItemCache.getHandItem(info.get(ProtocolInfo.class).getUuid()); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index e0ad6dd40..f7c7864b8 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -74,4 +74,6 @@ anti-xray-patch: true # Should we replace extended pistons to fix 1.10.1 (Only on chunk load) replace-pistons: false # What id should we replace with, default is air. (careful of players getting stuck standing on them) -replacement-piston-id: 0 \ No newline at end of file +replacement-piston-id: 0 +# Force the string -> json transform +force-json-transform: true \ No newline at end of file