From a0e588a6f1319fa368d0e0506a259b930a4c9b77 Mon Sep 17 00:00:00 2001 From: NichtStudioCode <51272202+NichtStudioCode@users.noreply.github.com> Date: Sat, 4 Mar 2023 18:40:47 +0100 Subject: [PATCH] Fix unique nbt tag being applied to virtual inventory items --- .../invui/window/AbstractWindow.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java b/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java index f3215cd..3008361 100644 --- a/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java +++ b/invui/src/main/java/xyz/xenondevs/invui/window/AbstractWindow.java @@ -79,16 +79,19 @@ public abstract class AbstractWindow implements Window, GuiParent { itemStack = background == null ? null : background.get(getLang()); } else { - itemStack = element.getItemStack(getLang()); + SlotElement holdingElement = element.getHoldingElement(); + itemStack = holdingElement.getItemStack(getLang()); - // This makes every item unique to prevent Shift-DoubleClick "clicking" multiple items at the same time. - if (itemStack.hasItemMeta()) { - // clone ItemStack in order to not modify the original - itemStack = itemStack.clone(); - - ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.getPersistentDataContainer().set(SLOT_KEY, PersistentDataType.BYTE, (byte) index); - itemStack.setItemMeta(itemMeta); + if (holdingElement instanceof SlotElement.ItemSlotElement) { + // This makes every item unique to prevent Shift-DoubleClick "clicking" multiple items at the same time. + if (itemStack.hasItemMeta()) { + // clone ItemStack in order to not modify the original + itemStack = itemStack.clone(); + + ItemMeta itemMeta = itemStack.getItemMeta(); + itemMeta.getPersistentDataContainer().set(SLOT_KEY, PersistentDataType.BYTE, (byte) index); + itemStack.setItemMeta(itemMeta); + } } } setInvItem(index, itemStack);