From fc64a6c2ff64b4cf33c4ba91ae937559bb65cb01 Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Tue, 1 Mar 2016 22:47:11 +0000 Subject: [PATCH] Manually wrap serialized components in an extra text component to work around a 1.9 change (Fixes #1770) --- .../java/net/md_5/bungee/chat/ComponentSerializer.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/chat/src/main/java/net/md_5/bungee/chat/ComponentSerializer.java b/chat/src/main/java/net/md_5/bungee/chat/ComponentSerializer.java index 5756fc4a..da801828 100644 --- a/chat/src/main/java/net/md_5/bungee/chat/ComponentSerializer.java +++ b/chat/src/main/java/net/md_5/bungee/chat/ComponentSerializer.java @@ -39,12 +39,17 @@ public class ComponentSerializer implements JsonDeserializer public static String toString(BaseComponent component) { - return gson.toJson( component ); + // 1.9 Requires the first component to not be a plain string which can + // happen if a text component has no formatting. This optimization is + // still useful when nested more so we just manually wrap everything in + // an extra text component. + return "{\"text\":\"\", \"extra\": [" + gson.toJson( component ) + "]}"; } public static String toString(BaseComponent... components) { - return gson.toJson( new TextComponent( components ) ); + // See above + return "{\"text\":\"\", \"extra\": [" + gson.toJson( new TextComponent( components ) ) + "]}"; } @Override