From cdcf904ac86f5e92a8c7c2e926f8a37ebfc5a8b9 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Mon, 8 May 2023 12:23:20 -0500 Subject: [PATCH] fix: cosmetic tpe gui items not processing placeholders --- .../java/com/hibiscusmc/hmccosmetics/gui/Menu.java | 10 ++++++---- .../hmccosmetics/gui/type/types/TypeCosmetic.java | 9 +++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/Menu.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/Menu.java index 8d57d6a2..51ed9c0d 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/Menu.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/Menu.java @@ -152,10 +152,12 @@ public class Menu { MessagesUtil.sendDebugMessages("Selected slot " + slot); final ClickType clickType = event.getClick(); if (finalType != null) finalType.run(user, config, clickType); - - for (int guiSlot : slots) { - gui.updateItem(guiSlot, updateItem(user, originalItem.clone(), finalType, config, guiSlot)); - } + // Need to delay the update by a tick so it will actually update with new values + Bukkit.getScheduler().runTaskLater(HMCCosmeticsPlugin.getInstance(), () -> { + for (int guiSlot : slots) { + gui.updateItem(guiSlot, updateItem(user, originalItem, finalType, config, guiSlot)); + } + }, 1); MessagesUtil.sendDebugMessages("Updated slot " + slot); }); diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/type/types/TypeCosmetic.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/type/types/TypeCosmetic.java index 8ebdbe4d..5722938f 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/type/types/TypeCosmetic.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/type/types/TypeCosmetic.java @@ -92,7 +92,6 @@ public class TypeCosmetic extends Type { if (cosmetic instanceof CosmeticArmorType) { if (((CosmeticArmorType) cosmetic).getEquipSlot().equals(EquipmentSlot.OFF_HAND)) { Bukkit.getScheduler().runTaskLater(HMCCosmeticsPlugin.getInstance(), run, 1); - return; } } run.run(); @@ -101,19 +100,19 @@ public class TypeCosmetic extends Type { @Override public ItemStack setItem(CosmeticUser user, @NotNull ConfigurationNode config, ItemStack itemStack, int slot) { ItemMeta itemMeta = itemStack.getItemMeta(); + itemStack.setItemMeta(processLoreLines(user, itemMeta)); if (config.node("cosmetic").virtual()) { - itemStack.setItemMeta(processLoreLines(user, itemMeta)); return itemStack; }; String cosmeticName = config.node("cosmetic").getString(); Cosmetic cosmetic = Cosmetics.getCosmetic(cosmeticName); if (cosmetic == null) { - itemStack.setItemMeta(processLoreLines(user, itemMeta)); return itemStack; } if (user.hasCosmeticInSlot(cosmetic) && !config.node("equipped-item").virtual()) { + MessagesUtil.sendDebugMessages("GUI Equipped Item"); ConfigurationNode equippedItem = config.node("equipped-item"); try { if (equippedItem.node("material").virtual()) equippedItem.node("material").set(config.node("item", "material").getString()); @@ -125,10 +124,12 @@ public class TypeCosmetic extends Type { } catch (SerializationException e) { throw new RuntimeException(e); } + itemStack.setItemMeta(processLoreLines(user, itemStack.getItemMeta())); return itemStack; } if (!user.canEquipCosmetic(cosmetic) && !config.node("locked-item").virtual()) { + MessagesUtil.sendDebugMessages("GUI Locked Item"); ConfigurationNode lockedItem = config.node("locked-item"); try { if (lockedItem.node("material").virtual()) lockedItem.node("material").set(config.node("item", "material").getString()); @@ -137,10 +138,10 @@ public class TypeCosmetic extends Type { } try { itemStack = ItemSerializer.INSTANCE.deserialize(ItemStack.class, lockedItem); - //item = config.node("item").get(ItemStack.class); } catch (SerializationException e) { throw new RuntimeException(e); } + itemStack.setItemMeta(processLoreLines(user, itemStack.getItemMeta())); return itemStack; } return itemStack;