Read PlayerListItem display names according to the protocol version.

Fixes #349
This commit is contained in:
Andrew Steinborn
2020-08-06 15:13:22 -04:00
parent 6cec09974a
commit 5cceebdffc

View File

@@ -58,7 +58,7 @@ public class PlayerListItem implements MinecraftPacket {
item.setProperties(ProtocolUtils.readProperties(buf)); item.setProperties(ProtocolUtils.readProperties(buf));
item.setGameMode(ProtocolUtils.readVarInt(buf)); item.setGameMode(ProtocolUtils.readVarInt(buf));
item.setLatency(ProtocolUtils.readVarInt(buf)); item.setLatency(ProtocolUtils.readVarInt(buf));
item.setDisplayName(readOptionalComponent(buf)); item.setDisplayName(readOptionalComponent(buf, version));
break; break;
case UPDATE_GAMEMODE: case UPDATE_GAMEMODE:
item.setGameMode(ProtocolUtils.readVarInt(buf)); item.setGameMode(ProtocolUtils.readVarInt(buf));
@@ -67,7 +67,7 @@ public class PlayerListItem implements MinecraftPacket {
item.setLatency(ProtocolUtils.readVarInt(buf)); item.setLatency(ProtocolUtils.readVarInt(buf));
break; break;
case UPDATE_DISPLAY_NAME: case UPDATE_DISPLAY_NAME:
item.setDisplayName(readOptionalComponent(buf)); item.setDisplayName(readOptionalComponent(buf, version));
break; break;
case REMOVE_PLAYER: case REMOVE_PLAYER:
//Do nothing, all that is needed is the uuid //Do nothing, all that is needed is the uuid
@@ -85,9 +85,10 @@ public class PlayerListItem implements MinecraftPacket {
} }
} }
private static @Nullable Component readOptionalComponent(ByteBuf buf) { private static @Nullable Component readOptionalComponent(ByteBuf buf, ProtocolVersion version) {
if (buf.readBoolean()) { if (buf.readBoolean()) {
return GsonComponentSerializer.gson().deserialize(ProtocolUtils.readString(buf)); return ProtocolUtils.getJsonChatSerializer(version)
.deserialize(ProtocolUtils.readString(buf));
} }
return null; return null;
} }