From 921c5f936ea7ade002e532bafbe94f1349828d55 Mon Sep 17 00:00:00 2001 From: Bjarne Koll Date: Thu, 5 Jun 2025 01:23:45 +0200 Subject: [PATCH] Do not send update packets for saddle/body slots The player inventory now allows setting the saddle and body equipment slot. The client menu for this however does not contain slots. As such, updating the player for such slots leads to an IOOB exception. --- .../org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java index 254032aca9..c05405e6dd 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java @@ -77,6 +77,8 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i // Paper end - Validate setItem index super.setItem(index, item); if (this.getHolder() == null) return; + + if (index > 40) return; // Do not send update packets for saddle or body slots as the player menu does not contain these. ServerPlayer player = ((CraftPlayer) this.getHolder()).getHandle(); if (player.connection == null) return; // PacketPlayOutSetSlot places the items differently than setItem()