From 53a00c8d2d8796b28b68e4744b5b692c164037e5 Mon Sep 17 00:00:00 2001 From: StarWishsama Date: Sat, 11 May 2024 13:29:21 +0800 Subject: [PATCH] fix(menu): wrong `replaceExistingItem` behavior --- .../general/Inventory/ChestMenu.java | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/src/main/java/me/mrCookieSlime/CSCoreLibPlugin/general/Inventory/ChestMenu.java b/src/main/java/me/mrCookieSlime/CSCoreLibPlugin/general/Inventory/ChestMenu.java index d34e849d66..342cf3753b 100644 --- a/src/main/java/me/mrCookieSlime/CSCoreLibPlugin/general/Inventory/ChestMenu.java +++ b/src/main/java/me/mrCookieSlime/CSCoreLibPlugin/general/Inventory/ChestMenu.java @@ -127,9 +127,9 @@ public ChestMenu addPlayerInventoryClickHandler(MenuClickHandler handler) { * @return The ChestMenu Instance */ public ChestMenu addItem(int slot, ItemStack item) { - resizeCheck(slot); - + setSize((int) (Math.max(getSize(), Math.ceil((slot + 1) / 9d) * 9))); this.items.set(slot, item); + this.inventory.setItem(slot, item); return this; } @@ -266,8 +266,6 @@ public void reset(boolean update) { */ public void replaceExistingItem(int slot, ItemStack item) { setup(); - resizeCheck(slot); - this.items.set(slot, item); this.inventory.setItem(slot, item); } @@ -339,7 +337,6 @@ public int getSize() { public ChestMenu setSize(int size) { if (size % 9 == 0 && size >= 0 && size < 55) { - // Resize items list to match actual inventory size in order to reset inventory. // I'm sure that use size of items as inventory size is somehow strange. if (size > items.size()) { @@ -371,17 +368,6 @@ public boolean isSizeAutomaticallyInferred() { return size == -1; } - private void resizeCheck(int operateSlot) { - if (isSizeAutomaticallyInferred()) { - setSize((int) (Math.max(getSize(), Math.ceil((operateSlot + 1) / 9d) * 9))); - } else { - if ((operateSlot - 1) > getSize()) { - throw new IllegalStateException( - "Unable to add item since slot is larger than inv size (" + getSize() + ")"); - } - } - } - @FunctionalInterface public interface MenuClickHandler {