From 827526e20023eab2a96409dc9b92d984c03c80a6 Mon Sep 17 00:00:00 2001 From: Felix Cravic Date: Sat, 1 Aug 2020 10:40:43 +0200 Subject: [PATCH] Optimize Inventory#clear --- src/main/java/net/minestom/server/inventory/Inventory.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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(); } }