diff --git a/src/main/java/mc/protocol/login/server/DisconnectPacket.java b/src/main/java/mc/protocol/login/server/DisconnectPacket.java index 97b894f..bf0d0e0 100644 --- a/src/main/java/mc/protocol/login/server/DisconnectPacket.java +++ b/src/main/java/mc/protocol/login/server/DisconnectPacket.java @@ -31,9 +31,13 @@ public class DisconnectPacket implements Packet { @Override public void readSelf(NetInputStream netInputStream) { - final String jsonText = netInputStream.readString(); - this.reason = JsonUtils.jsonToObject(jsonText, Text.class) - .orElseThrow(() -> new DecoderException("Error decode reason:\n" + jsonText)); + final String rawString = netInputStream.readString(); + if (rawString.startsWith("{") && rawString.endsWith("}")) { + this.reason = JsonUtils.jsonToObject(rawString, Text.class) + .orElseThrow(() -> new DecoderException("Error decode reason:\n" + rawString)); + } else { + this.reason = Text.of(rawString); + } } @Override