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