@@ -183,6 +183,10 @@ private void setupPacketHandlers() {
183183 }
184184 packetHandlers .put (PacketType .Play .Server .WINDOW_ITEMS , asAsync (this ::handleWindowItems ));
185185 packetHandlers .put (PacketType .Play .Server .SET_SLOT , asAsync (this ::handleSetSlot ));
186+ if (MinecraftVersion .v1_21_2 .atOrAbove ()) { // 1.21.2+
187+ packetHandlers .put (PacketType .Play .Server .SET_CURSOR_ITEM , asAsync (this ::handleSetCursorItem ));
188+ packetHandlers .put (PacketType .Play .Server .SET_PLAYER_INVENTORY , asAsync (this ::handleSetPlayerInventory ));
189+ }
186190 if (MinecraftVersion .VILLAGE_UPDATE .atOrAbove ()) { // 1.14+
187191 // Nothing to translate, but register listener to ensure order in async mode
188192 packetHandlers .put (PacketType .Play .Server .OPEN_BOOK , asAsync (this ::handleNop ));
@@ -649,6 +653,16 @@ private void handleSetSlot(PacketEvent packet, SpigotLanguagePlayer languagePlay
649653 packet .getPacket ().getItemModifier ().writeSafely (0 , item );
650654 }
651655
656+ private void handleSetCursorItem (PacketEvent packet , SpigotLanguagePlayer languagePlayer ) {
657+ // same structure as set slot, reuse
658+ handleSetSlot (packet , languagePlayer );
659+ }
660+
661+ private void handleSetPlayerInventory (PacketEvent packet , SpigotLanguagePlayer languagePlayer ) {
662+ // same structure as set slot, reuse
663+ handleSetSlot (packet , languagePlayer );
664+ }
665+
652666 private void handleMerchantItems (PacketEvent packet , SpigotLanguagePlayer languagePlayer ) {
653667 if (!main .getConfig ().isItems ()) return ;
654668
0 commit comments