Skip to content

Commit e994c4d

Browse files
committed
feat(spigot): support inventory packets added in MC 1.21.2
Fixes some items not translating properly in recent versions.
1 parent 94f3280 commit e994c4d

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

triton-spigot/src/main/java/com/rexcantor64/triton/spigot/packetinterceptor/ProtocolLibListener.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)