From b3ff2a343738b5ba8254c5f52a34201e8e6ff8cd Mon Sep 17 00:00:00 2001 From: Bixilon Date: Fri, 31 Jul 2020 23:54:05 +0200 Subject: [PATCH] new packet mapping (13w41b - 1.8.9) --- .../datatypes/objectLoader/versions/Version.java | 1 + .../datatypes/objectLoader/versions/Versions.java | 13 +++++++++---- .../bixilon/minosoft/protocol/protocol/Packets.java | 11 +++++++---- .../minosoft/protocol/protocol/Protocol.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_10.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_11_2.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_12_2.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_13_2.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_14_4.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_15_2.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_16_2.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_7_10.java | 2 +- .../protocol/protocol/versions/Protocol_1_8.java | 4 ++-- .../protocol/protocol/versions/Protocol_1_9_4.java | 4 ++-- src/main/resources/assets/mapping/versions.json | 1 + 15 files changed, 39 insertions(+), 29 deletions(-) create mode 100644 src/main/resources/assets/mapping/versions.json diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Version.java b/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Version.java index 87d548221..944567986 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Version.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Version.java @@ -75,6 +75,7 @@ public class Version { return clientboundPacketMapping.get(packet); } + public HashBiMap getClientboundPacketMapping() { return clientboundPacketMapping; } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Versions.java b/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Versions.java index c211afca0..883dec8ae 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Versions.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/objectLoader/versions/Versions.java @@ -14,6 +14,7 @@ package de.bixilon.minosoft.game.datatypes.objectLoader.versions; import com.google.common.collect.HashBiMap; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; import de.bixilon.minosoft.game.datatypes.Mappings; import de.bixilon.minosoft.protocol.protocol.Packets; @@ -60,12 +61,15 @@ public class Versions { } else { JsonObject mappingJson = versionJson.getAsJsonObject("mapping"); serverboundPacketMapping = HashBiMap.create(); - for (String packetName : mappingJson.getAsJsonObject("serverbound").keySet()) { - serverboundPacketMapping.put(Packets.Serverbound.valueOf(packetName), mappingJson.getAsJsonObject("serverbound").get(packetName).getAsInt()); + + for (JsonElement packetElement : mappingJson.getAsJsonArray("serverbound")) { + String packetName = packetElement.getAsString(); + serverboundPacketMapping.put(Packets.Serverbound.valueOf(packetName), serverboundPacketMapping.size()); } clientboundPacketMapping = HashBiMap.create(); - for (String packetName : mappingJson.getAsJsonObject("clientbound").keySet()) { - clientboundPacketMapping.put(Packets.Clientbound.valueOf(packetName), mappingJson.getAsJsonObject("clientbound").get(packetName).getAsInt()); + for (JsonElement packetElement : mappingJson.getAsJsonArray("clientbound")) { + String packetName = packetElement.getAsString(); + clientboundPacketMapping.put(Packets.Clientbound.valueOf(packetName), clientboundPacketMapping.size()); } } Version version = new Version(versionName, protocolId, serverboundPacketMapping, clientboundPacketMapping); @@ -89,4 +93,5 @@ public class Versions { version.unload(); } } + } diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/Packets.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/Packets.java index 54ac4e8b4..3887573a9 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/Packets.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/Packets.java @@ -69,7 +69,8 @@ public class Packets { PLAY_UPDATE_COMMAND_BLOCK_MINECART, PLAY_GENERATE_STRUCTURE, PLAY_SET_DISPLAYED_RECIPE, - PLAY_SET_RECIPE_BOOK_STATE; + PLAY_SET_RECIPE_BOOK_STATE, + PLAY_PLAYER_GROUND_CHANGE; final ConnectionState state; @@ -140,7 +141,7 @@ public class Packets { PLAY_CRAFT_RECIPE_RESPONSE, PLAY_PLAYER_ABILITIES, PLAY_COMBAT_EVENT, - PLAY_PLAYER_INFO, + PLAY_PLAYER_LIST_ITEM, PLAY_FACE_PLAYER, PLAY_PLAYER_POSITION_AND_ROTATION, PLAY_UNLOCK_RECIPES, @@ -170,7 +171,7 @@ public class Packets { PLAY_ENTITY_SOUND_EFFECT, PLAY_SOUND_EFFECT, PLAY_STOP_SOUND, - PLAY_LIST_HEADER_AND_FOOTER, + PLAY_PLAYER_LIST_HEADER_AND_FOOTER, PLAY_NBT_QUERY_RESPONSE, PLAY_COLLECT_ITEM, PLAY_ENTITY_TELEPORT, @@ -185,7 +186,9 @@ public class Packets { PLAY_UPDATE_SIGN, PLAY_STATISTICS, PLAY_SPAWN_ENTITY, - PLAY_TITLE; + PLAY_TITLE, + PLAY_ENTITY_INITIALISATION, + PLAY_SET_COMPRESSION; final ConnectionState state; diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java index 75960375e..f11a5ba52 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/Protocol.java @@ -35,7 +35,7 @@ public abstract class Protocol implements ProtocolInterface { packetClassMapping.put(Packets.Clientbound.LOGIN_PLUGIN_REQUEST, PacketLoginPluginRequest.class); packetClassMapping.put(Packets.Clientbound.PLAY_JOIN_GAME, PacketJoinGame.class); - packetClassMapping.put(Packets.Clientbound.PLAY_PLAYER_INFO, PacketPlayerInfo.class); + packetClassMapping.put(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM, PacketPlayerInfo.class); packetClassMapping.put(Packets.Clientbound.PLAY_TIME_UPDATE, PacketTimeUpdate.class); packetClassMapping.put(Packets.Clientbound.PLAY_KEEP_ALIVE, PacketKeepAlive.class); packetClassMapping.put(Packets.Clientbound.PLAY_CHUNK_BULK, PacketChunkBulk.class); @@ -96,7 +96,7 @@ public abstract class Protocol implements ProtocolInterface { packetClassMapping.put(Packets.Clientbound.PLAY_DISPLAY_SCOREBOARD, PacketScoreboardDisplayScoreboard.class); packetClassMapping.put(Packets.Clientbound.PLAY_MAP_DATA, PacketMapData.class); packetClassMapping.put(Packets.Clientbound.PLAY_SERVER_DIFFICULTY, PacketServerDifficulty.class); - packetClassMapping.put(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER, PacketTabHeaderAndFooter.class); + packetClassMapping.put(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER, PacketTabHeaderAndFooter.class); packetClassMapping.put(Packets.Clientbound.PLAY_RESOURCE_PACK_SEND, PackerResourcePackSend.class); packetClassMapping.put(Packets.Clientbound.PLAY_ENTITY_PROPERTIES, PacketEntityProperties.class); packetClassMapping.put(Packets.Clientbound.PLAY_WORLD_BORDER, PacketWorldBorder.class); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_10.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_10.java index 9f5d4e3ac..e77d667b9 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_10.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_10.java @@ -67,7 +67,7 @@ public class Protocol_1_10 extends Protocol { registerPacket(Packets.Clientbound.PLAY_OPEN_SIGN_EDITOR); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_USE_BED); registerPacket(Packets.Clientbound.PLAY_DESTROY_ENTITIES); @@ -93,7 +93,7 @@ public class Protocol_1_10 extends Protocol { registerPacket(Packets.Clientbound.PLAY_TIME_UPDATE); registerPacket(Packets.Clientbound.PLAY_TITLE); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_COLLECT_ITEM); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); registerPacket(Packets.Clientbound.PLAY_ENTITY_PROPERTIES); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_11_2.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_11_2.java index f8efc5f8d..6e9948869 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_11_2.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_11_2.java @@ -65,7 +65,7 @@ public class Protocol_1_11_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_OPEN_SIGN_EDITOR); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_USE_BED); registerPacket(Packets.Clientbound.PLAY_DESTROY_ENTITIES); @@ -91,7 +91,7 @@ public class Protocol_1_11_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_TIME_UPDATE); registerPacket(Packets.Clientbound.PLAY_TITLE); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_COLLECT_ITEM); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); registerPacket(Packets.Clientbound.PLAY_ENTITY_PROPERTIES); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_12_2.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_12_2.java index 96a709cf9..0f2d0b088 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_12_2.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_12_2.java @@ -68,7 +68,7 @@ public class Protocol_1_12_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_CRAFT_RECIPE_RESPONSE); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_USE_BED); registerPacket(Packets.Clientbound.PLAY_UNLOCK_RECIPES); @@ -96,7 +96,7 @@ public class Protocol_1_12_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_TIME_UPDATE); registerPacket(Packets.Clientbound.PLAY_TITLE); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_COLLECT_ITEM); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); registerPacket(Packets.Clientbound.PLAY_ADVANCEMENTS); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_13_2.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_13_2.java index 2be5d008f..2d2710f44 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_13_2.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_13_2.java @@ -69,7 +69,7 @@ public class Protocol_1_13_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_CRAFT_RECIPE_RESPONSE); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_FACE_PLAYER); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_USE_BED); @@ -99,7 +99,7 @@ public class Protocol_1_13_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_TITLE); registerPacket(Packets.Clientbound.PLAY_STOP_SOUND); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_COLLECT_ITEM); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); registerPacket(Packets.Clientbound.PLAY_ADVANCEMENTS); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_14_4.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_14_4.java index d74c9bc72..9bc5e063c 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_14_4.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_14_4.java @@ -71,7 +71,7 @@ public class Protocol_1_14_4 extends Protocol { registerPacket(Packets.Clientbound.PLAY_CRAFT_RECIPE_RESPONSE); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_FACE_PLAYER); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_UNLOCK_RECIPES); @@ -103,7 +103,7 @@ public class Protocol_1_14_4 extends Protocol { registerPacket(Packets.Clientbound.PLAY_ENTITY_SOUND_EFFECT); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); registerPacket(Packets.Clientbound.PLAY_STOP_SOUND); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_NBT_QUERY_RESPONSE); increasePacketCounter(Packets.Clientbound.class); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_15_2.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_15_2.java index 70725a29f..09bcaaac8 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_15_2.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_15_2.java @@ -73,7 +73,7 @@ public class Protocol_1_15_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_CRAFT_RECIPE_RESPONSE); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_FACE_PLAYER); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_UNLOCK_RECIPES); @@ -105,7 +105,7 @@ public class Protocol_1_15_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_ENTITY_SOUND_EFFECT); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); registerPacket(Packets.Clientbound.PLAY_STOP_SOUND); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_NBT_QUERY_RESPONSE); registerPacket(Packets.Clientbound.PLAY_COLLECT_ITEM); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_16_2.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_16_2.java index ea9199887..7b01f9485 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_16_2.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_16_2.java @@ -71,7 +71,7 @@ public class Protocol_1_16_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_CRAFT_RECIPE_RESPONSE); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_FACE_PLAYER); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_UNLOCK_RECIPES); @@ -106,7 +106,7 @@ public class Protocol_1_16_2 extends Protocol { registerPacket(Packets.Clientbound.PLAY_ENTITY_SOUND_EFFECT); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); registerPacket(Packets.Clientbound.PLAY_STOP_SOUND); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_NBT_QUERY_RESPONSE); registerPacket(Packets.Clientbound.PLAY_COLLECT_ITEM); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_7_10.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_7_10.java index 8171e0a45..08623f910 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_7_10.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_7_10.java @@ -76,7 +76,7 @@ public class Protocol_1_7_10 extends Protocol { registerPacket(Packets.Clientbound.PLAY_BLOCK_ENTITY_DATA); registerPacket(Packets.Clientbound.PLAY_OPEN_SIGN_EDITOR); registerPacket(Packets.Clientbound.PLAY_STATISTICS); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_TAB_COMPLETE); registerPacket(Packets.Clientbound.PLAY_SCOREBOARD_OBJECTIVE); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_8.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_8.java index ea27b60c3..f0bf8d5a5 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_8.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_8.java @@ -77,7 +77,7 @@ public class Protocol_1_8 extends Protocol { registerPacket(Packets.Clientbound.PLAY_BLOCK_ENTITY_DATA); registerPacket(Packets.Clientbound.PLAY_OPEN_SIGN_EDITOR); registerPacket(Packets.Clientbound.PLAY_STATISTICS); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_TAB_COMPLETE); registerPacket(Packets.Clientbound.PLAY_SCOREBOARD_OBJECTIVE); @@ -92,7 +92,7 @@ public class Protocol_1_8 extends Protocol { registerPacket(Packets.Clientbound.PLAY_WORLD_BORDER); registerPacket(Packets.Clientbound.PLAY_TITLE); increasePacketCounter(Packets.Clientbound.class); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_RESOURCE_PACK_SEND); registerPacket(Packets.Clientbound.PLAY_NBT_QUERY_RESPONSE); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_9_4.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_9_4.java index 9333f7223..08e9a4a53 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_9_4.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/versions/Protocol_1_9_4.java @@ -66,7 +66,7 @@ public class Protocol_1_9_4 extends Protocol { registerPacket(Packets.Clientbound.PLAY_OPEN_SIGN_EDITOR); registerPacket(Packets.Clientbound.PLAY_PLAYER_ABILITIES); registerPacket(Packets.Clientbound.PLAY_COMBAT_EVENT); - registerPacket(Packets.Clientbound.PLAY_PLAYER_INFO); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_ITEM); registerPacket(Packets.Clientbound.PLAY_PLAYER_POSITION_AND_ROTATION); registerPacket(Packets.Clientbound.PLAY_USE_BED); registerPacket(Packets.Clientbound.PLAY_DESTROY_ENTITIES); @@ -92,7 +92,7 @@ public class Protocol_1_9_4 extends Protocol { registerPacket(Packets.Clientbound.PLAY_TIME_UPDATE); registerPacket(Packets.Clientbound.PLAY_TITLE); registerPacket(Packets.Clientbound.PLAY_SOUND_EFFECT); - registerPacket(Packets.Clientbound.PLAY_LIST_HEADER_AND_FOOTER); + registerPacket(Packets.Clientbound.PLAY_PLAYER_LIST_HEADER_AND_FOOTER); registerPacket(Packets.Clientbound.PLAY_COLLECT_ITEM); registerPacket(Packets.Clientbound.PLAY_ENTITY_TELEPORT); registerPacket(Packets.Clientbound.PLAY_ENTITY_PROPERTIES); diff --git a/src/main/resources/assets/mapping/versions.json b/src/main/resources/assets/mapping/versions.json new file mode 100644 index 000000000..e556745ba --- /dev/null +++ b/src/main/resources/assets/mapping/versions.json @@ -0,0 +1 @@ +{"47":{"name":"1.8.9","mapping":33},"46":{"name":"1.8-pre3","mapping":33},"45":{"name":"1.8-pre2","mapping":33},"44":{"name":"1.8-pre1","mapping":33},"43":{"name":"14w34d","mapping":33},"42":{"name":"14w34c","mapping":33},"41":{"name":"14w34b","mapping":33},"40":{"name":"14w34a","mapping":33},"39":{"name":"14w33c","mapping":33},"38":{"name":"14w33b","mapping":33},"37":{"name":"14w33a","mapping":33},"36":{"name":"14w32d","mapping":33},"35":{"name":"14w32c","mapping":33},"34":{"name":"14w32b","mapping":33},"33":{"name":"14w32a","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE","PLAY_SPECTATE","PLAY_RESOURCE_PACK_STATUS"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA","PLAY_WORLD_BORDER","PLAY_TITLE","PLAY_SET_COMPRESSION","PLAY_PLAYER_LIST_HEADER_AND_FOOTER","PLAY_RESOURCE_PACK_SEND","PLAY_NBT_QUERY_RESPONSE"]}},"32":{"name":"14w31a","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE","PLAY_SPECTATE","PLAY_RESOURCE_PACK_STATUS"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA","PLAY_WORLD_BORDER","PLAY_TITLE","PLAY_SET_COMPRESSION","PLAY_PLAYER_LIST_HEADER_AND_FOOTER","PLAY_RESOURCE_PACK_SEND"]}},"31":{"name":"14w30c","mapping":28},"30":{"name":"14w30b","mapping":28},"29":{"name":"14w29a","mapping":28},"28":{"name":"14w28b","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE","PLAY_SPECTATE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA","PLAY_WORLD_BORDER","PLAY_TITLE","PLAY_SET_COMPRESSION","PLAY_PLAYER_LIST_HEADER_AND_FOOTER"]}},"27":{"name":"14w28a","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE","PLAY_SPECTATE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA","PLAY_WORLD_BORDER","PLAY_TITLE","PLAY_SET_COMPRESSION"]}},"26":{"name":"14w27b","mapping":18},"25":{"name":"14w26c","mapping":18},"24":{"name":"14w26b","mapping":18},"23":{"name":"14w26a","mapping":18},"22":{"name":"14w25b","mapping":18},"21":{"name":"14w25a","mapping":18},"20":{"name":"14w21b","mapping":18},"19":{"name":"14w21a","mapping":18},"18":{"name":"14w20b","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE","PLAY_SPECTATE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA","PLAY_WORLD_BORDER","PLAY_TITLE"]}},"17":{"name":"14w19a","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE","PLAY_SPECTATE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA","PLAY_WORLD_BORDER"]}},"16":{"name":"14w18b","mapping":15},"15":{"name":"14w17a","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA","PLAY_WORLD_BORDER"]}},"14":{"name":"14w11b","mapping":9},"13":{"name":"14w10c","mapping":9},"12":{"name":"14w08a","mapping":9},"11":{"name":"14w07a","mapping":9},"10":{"name":"14w06b","mapping":9},"9":{"name":"14w05b","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT","PLAY_CAMERA"]}},"8":{"name":"14w04b","mapping":7},"7":{"name":"14w04a","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY","PLAY_COMBAT_EVENT"]}},"6":{"name":"14w03b","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT","PLAY_SERVER_DIFFICULTY"]}},"5":{"name":"1.7.10","mapping":0},"4":{"name":"1.7.5","mapping":0},"3":{"name":"1.7.1-pre","mapping":0},"2":{"name":"13w43a","mapping":0},"1":{"name":"13w42b","mapping":0},"0":{"name":"13w41b","mapping":{"serverbound":["PLAY_KEEP_ALIVE","PLAY_CHAT_MESSAGE","PLAY_INTERACT_ENTITY","PLAY_PLAYER_GROUND_CHANGE","PLAY_PLAYER_POSITION","PLAY_PLAYER_ROTATION","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_PLAYER_DIGGING","PLAY_PLAYER_BLOCK_PLACEMENT","PLAY_HELD_ITEM_CHANGE","PLAY_ANIMATION","PLAY_ENTITY_ACTION","PLAY_STEER_VEHICLE","PLAY_CLOSE_WINDOW","PLAY_CLICK_WINDOW","PLAY_WINDOW_CONFIRMATION","PLAY_CREATIVE_INVENTORY_ACTION","PLAY_CLICK_WINDOW_BUTTON","PLAY_UPDATE_SIGN","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_CLIENT_SETTINGS","PLAY_CLIENT_STATUS","PLAY_PLUGIN_MESSAGE"],"clientbound":["PLAY_KEEP_ALIVE","PLAY_JOIN_GAME","PLAY_CHAT_MESSAGE","PLAY_TIME_UPDATE","PLAY_ENTITY_EQUIPMENT","PLAY_SPAWN_POSITION","PLAY_UPDATE_HEALTH","PLAY_RESPAWN","PLAY_PLAYER_POSITION_AND_ROTATION","PLAY_HELD_ITEM_CHANGE","PLAY_USE_BED","PLAY_ENTITY_ANIMATION","PLAY_SPAWN_PLAYER","PLAY_COLLECT_ITEM","PLAY_SPAWN_ENTITY","PLAY_SPAWN_MOB","PLAY_SPAWN_PAINTING","PLAY_SPAWN_EXPERIENCE_ORB","PLAY_ENTITY_VELOCITY","PLAY_DESTROY_ENTITIES","PLAY_ENTITY_INITIALISATION","PLAY_ENTITY_MOVEMENT","PLAY_ENTITY_ROTATION","PLAY_ENTITY_MOVEMENT_AND_ROTATION","PLAY_ENTITY_TELEPORT","PLAY_ENTITY_HEAD_ROTATION","PLAY_ENTITY_STATUS","PLAY_ATTACH_ENTITY","PLAY_ENTITY_METADATA","PLAY_ENTITY_EFFECT","PLAY_REMOVE_ENTITY_EFFECT","PLAY_SET_EXPERIENCE","PLAY_ENTITY_PROPERTIES","PLAY_CHUNK_DATA","PLAY_MULTIBLOCK_CHANGE","PLAY_BLOCK_ACTION","PLAY_BLOCK_BREAK_ANIMATION","PLAY_CHUNK_BULK","PLAY_EXPLOSION","PLAY_EFFECT","PLAY_NAMED_SOUND_EFFECT","PLAY_PARTICLE","PLAY_CHANGE_GAME_STATE","PLAY_SPAWN_WEATHER_ENTITY","PLAY_OPEN_WINDOW","PLAY_CLOSE_WINDOW","PLAY_SET_SLOT","PLAY_WINDOW_ITEMS","PLAY_WINDOW_PROPERTY","PLAY_WINDOW_CONFIRMATION","PLAY_UPDATE_SIGN","PLAY_MAP_DATA","PLAY_BLOCK_ENTITY_DATA","PLAY_OPEN_SIGN_EDITOR","PLAY_STATISTICS","PLAY_PLAYER_LIST_ITEM","PLAY_PLAYER_ABILITIES","PLAY_TAB_COMPLETE","PLAY_SCOREBOARD_OBJECTIVE","PLAY_UPDATE_SCORE","PLAY_DISPLAY_SCOREBOARD","PLAY_TEAMS","PLAY_PLUGIN_MESSAGE","PLAY_DISCONNECT"]}}} \ No newline at end of file