diff --git a/.idea/misc.xml b/.idea/misc.xml index 367f7d2a..353604cf 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -9,7 +9,7 @@ - + \ No newline at end of file diff --git a/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/CosmeticGui.java b/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/CosmeticGui.java index 7b6b3244..f4440cc0 100644 --- a/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/CosmeticGui.java +++ b/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/CosmeticGui.java @@ -151,7 +151,7 @@ public class CosmeticGui { } @Nullable - private GuiItem getGuiItem(final User user, final Player player, final GuiItem guiItem, final ItemStack itemStack) { + protected GuiItem getGuiItem(final User user, final Player player, final GuiItem guiItem, final ItemStack itemStack) { if (guiItem instanceof final ArmorItem armorItem) { final String permission = armorItem.getPermission() == null ? "" : armorItem.getPermission(); @@ -188,8 +188,12 @@ public class CosmeticGui { return guiItem; } - protected ItemStack applyPlaceholders(final User user, final Player player, - final ArmorItem armorItem, final boolean hasPermission) { + protected ItemStack applyPlaceholders( + final User user, + final Player player, + final ArmorItem armorItem, + final boolean hasPermission + ) { final Map placeholders = new HashMap<>(); final PlayerArmor playerArmor = user.getPlayerArmor(); diff --git a/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/DyeSelectorGui.java b/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/DyeSelectorGui.java index b6bf2ca6..cd6f7318 100644 --- a/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/DyeSelectorGui.java +++ b/common/src/main/java/io/github/fisher2911/hmccosmetics/gui/DyeSelectorGui.java @@ -139,19 +139,33 @@ public class DyeSelectorGui extends CosmeticGui { final PlayerArmor playerArmor = user.getPlayerArmor(); + final ArmorItem previousArmorItem = playerArmor.getItem(this.cosmeticsSlots.get(this.selectedCosmetic)); + final ItemStack previous = this.applyPlaceholders( user, player, - playerArmor.getItem(this.cosmeticsSlots.get(this.selectedCosmetic)), + previousArmorItem, true ); - if (previous != null && previous.getType() != Material.AIR) { + if (previous != null && !previousArmorItem.isEmpty()) { final ItemStack previousItem = dev.triumphteam.gui.builder.item.ItemBuilder.from( previous ).glow(false).build(); this.gui.updateItem(this.selectedCosmetic, previousItem); + } else { + final GuiItem guiItem = this.guiItemMap.get(this.selectedCosmetic); + final ItemStack itemStack = this.itemStackMap.get(this.selectedCosmetic); + if (itemStack != null && guiItem != null) { + final GuiItem setItem = this.getGuiItem( + user, + player, + guiItem, + itemStack + ); + this.gui.updateItem(this.selectedCosmetic, setItem); + } } this.selectedCosmetic = slot; @@ -166,8 +180,8 @@ public class DyeSelectorGui extends CosmeticGui { return; } - this.gui.updateItem(this.selectedCosmetic, - + this.gui.updateItem( + this.selectedCosmetic, ItemBuilder.from( this.applyPlaceholders( user, player, user.getPlayerArmor().getItem(type), true