diff --git a/src/main/java/net/minestom/server/inventory/Inventory.java b/src/main/java/net/minestom/server/inventory/Inventory.java index dfd98db8d..d5857a33e 100644 --- a/src/main/java/net/minestom/server/inventory/Inventory.java +++ b/src/main/java/net/minestom/server/inventory/Inventory.java @@ -286,6 +286,7 @@ public class Inventory implements InventoryModifier, InventoryClickHandler, View protected void setItemStackInternal(int slot, ItemStack itemStack) { itemStacks[slot] = itemStack; + this.windowItemsBufferUpdated = false; } /** @@ -608,9 +609,11 @@ public class Inventory implements InventoryModifier, InventoryClickHandler, View } public void clear() { - // TODO: optimize by sending whole inventory at once? (will need to change to setItemStackInternal) + // Clear the item array for (int i = 0; i < getSize(); i++) { - setItemStack(i, ItemStack.getAirItem()); + setItemStackInternal(i, ItemStack.getAirItem()); } + // Send the cleared inventory to viewers + update(); } }