From 617c2728a25347487eee4e8649d52fe57f1ff6e2 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 3 May 2025 16:55:39 +1000 Subject: [PATCH] Minecraft 25w18a protocol support --- .../bungee/protocol/ProtocolConstants.java | 3 +- .../md_5/bungee/protocol/packet/Commands.java | 66 ++++++++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/ProtocolConstants.java b/protocol/src/main/java/net/md_5/bungee/protocol/ProtocolConstants.java index 976ee797..dde81c16 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/ProtocolConstants.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/ProtocolConstants.java @@ -50,6 +50,7 @@ public class ProtocolConstants public static final int MINECRAFT_1_21_2 = 768; public static final int MINECRAFT_1_21_4 = 769; public static final int MINECRAFT_1_21_5 = 770; + public static final int MINECRAFT_1_21_6 = 1073742072; public static final List SUPPORTED_VERSIONS; public static final List SUPPORTED_VERSION_IDS; @@ -120,7 +121,7 @@ public class ProtocolConstants if ( SNAPSHOT_SUPPORT ) { // supportedVersions.add( "1.21.x" ); - // supportedVersionIds.add( ProtocolConstants.MINECRAFT_1_21_5 ); + supportedVersionIds.add( ProtocolConstants.MINECRAFT_1_21_6 ); } SUPPORTED_VERSIONS = supportedVersions.build(); diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Commands.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Commands.java index 70b30aea..1f32ba1f 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Commands.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Commands.java @@ -313,6 +313,7 @@ public class Commands extends DefinedPacket private static final ArgumentSerializer[] IDS_1_20_3; private static final ArgumentSerializer[] IDS_1_20_5; private static final ArgumentSerializer[] IDS_1_21_5; + private static final ArgumentSerializer[] IDS_1_21_6; private static final Map, ProperArgumentSerializer> PROPER_PROVIDERS = new HashMap<>(); // private static final ArgumentSerializer VOID = new ArgumentSerializer() @@ -918,6 +919,66 @@ public class Commands extends DefinedPacket get( "minecraft:loot_predicate", VOID ), get( "minecraft:loot_modifier", VOID ) }; + + IDS_1_21_6 = new ArgumentSerializer[] + { + get( "brigadier:bool", VOID ), + get( "brigadier:float", FLOAT_RANGE ), + get( "brigadier:double", DOUBLE_RANGE ), + get( "brigadier:integer", INTEGER_RANGE ), + get( "brigadier:long", LONG_RANGE ), + get( "brigadier:string", STRING ), + get( "minecraft:entity", BYTE ), + get( "minecraft:game_profile", VOID ), + get( "minecraft:block_pos", VOID ), + get( "minecraft:column_pos", VOID ), + get( "minecraft:vec3", VOID ), + get( "minecraft:vec2", VOID ), + get( "minecraft:block_state", VOID ), + get( "minecraft:block_predicate", VOID ), + get( "minecraft:item_stack", VOID ), + get( "minecraft:item_predicate", VOID ), + get( "minecraft:color", VOID ), + get( "minecraft:hex_color", VOID ), + get( "minecraft:component", VOID ), + get( "minecraft:style", VOID ), + get( "minecraft:message", VOID ), + get( "minecraft:nbt_compound_tag", VOID ), + get( "minecraft:nbt_tag", VOID ), + get( "minecraft:nbt_path", VOID ), + get( "minecraft:objective", VOID ), + get( "minecraft:objective_criteria", VOID ), + get( "minecraft:operation", VOID ), + get( "minecraft:particle", VOID ), + get( "minecraft:angle", VOID ), + get( "minecraft:rotation", VOID ), + get( "minecraft:scoreboard_slot", VOID ), + get( "minecraft:score_holder", BYTE ), + get( "minecraft:swizzle", VOID ), + get( "minecraft:team", VOID ), + get( "minecraft:item_slot", VOID ), + get( "minecraft:item_slots", VOID ), + get( "minecraft:resource_location", VOID ), + get( "minecraft:function", VOID ), + get( "minecraft:entity_anchor", VOID ), + get( "minecraft:int_range", VOID ), + get( "minecraft:float_range", VOID ), + get( "minecraft:dimension", VOID ), + get( "minecraft:gamemode", VOID ), + get( "minecraft:time", INTEGER ), + get( "minecraft:resource_or_tag", RAW_STRING ), + get( "minecraft:resource_or_tag_key", RAW_STRING ), + get( "minecraft:resource", RAW_STRING ), + get( "minecraft:resource_key", RAW_STRING ), + get( "minecraft:resource_selector", RAW_STRING ), + get( "minecraft:template_mirror", VOID ), + get( "minecraft:template_rotation", VOID ), + get( "minecraft:uuid", VOID ), + get( "minecraft:heightmap", VOID ), + get( "minecraft:loot_table", VOID ), + get( "minecraft:loot_predicate", VOID ), + get( "minecraft:loot_modifier", VOID ) + }; } private static void register(String name, ArgumentSerializer serializer) @@ -939,7 +1000,10 @@ public class Commands extends DefinedPacket { key = readVarInt( buf ); - if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_21_5 ) + if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_21_6 ) + { + reader = IDS_1_21_6[(Integer) key]; + } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_21_5 ) { reader = IDS_1_21_5[(Integer) key]; } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_20_5 )