From 88632dce3f809b344862f71a48dbb34a9f56b481 Mon Sep 17 00:00:00 2001 From: Boy Date: Sun, 29 Jan 2023 18:10:22 +0100 Subject: [PATCH] add dyeing support for potions and maps --- .../hmccosmetics/gui/special/DyeMenu.java | 14 +++++++++----- .../hibiscusmc/hmccosmetics/user/CosmeticUser.java | 14 +++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/special/DyeMenu.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/special/DyeMenu.java index bdbf58e4..d3ea4438 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/special/DyeMenu.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/special/DyeMenu.java @@ -15,6 +15,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.LeatherArmorMeta; +import org.bukkit.inventory.meta.MapMeta; import org.bukkit.inventory.meta.PotionMeta; public class DyeMenu { @@ -29,16 +30,19 @@ public class DyeMenu { Player player = user.getPlayer(); Gui gui = HMCColorApi.INSTANCE.colorMenu(); gui.updateTitle(Placeholder.applyPapiPlaceholders(player, Settings.getDyeMenuName())); - gui.setItem(19, new GuiItem(originalItem)); + gui.setItem(10, new GuiItem(originalItem)); gui.setDefaultTopClickAction(event -> { - if (event.getSlot() == 25) { - ItemStack item = event.getInventory().getItem(25); + if (event.getSlot() == 16) { + ItemStack item = event.getInventory().getItem(16); if (item == null) return; ItemMeta meta = item.getItemMeta(); if (meta == null) return; - Color color = meta instanceof LeatherArmorMeta ? ((LeatherArmorMeta) meta).getColor() : - meta instanceof PotionMeta ? ((PotionMeta) meta).getColor() : null; + + Color color = meta instanceof LeatherArmorMeta leatherMeta ? leatherMeta.getColor() : + meta instanceof PotionMeta potionMeta ? potionMeta.getColor() : + meta instanceof MapMeta mapMeta ? mapMeta.getColor() : null; if (color == null) return; + //user.removeCosmeticSlot(cosmetic); user.addPlayerCosmetic(cosmetic, color); player.setItemOnCursor(new ItemStack(Material.AIR)); diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java index 24e7c9e1..83606343 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java @@ -23,8 +23,7 @@ import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.LeatherArmorMeta; +import org.bukkit.inventory.meta.*; import org.bukkit.scheduler.BukkitTask; import java.util.*; @@ -210,9 +209,14 @@ public class CosmeticUser { } if (item.hasItemMeta()) { ItemMeta itemMeta = item.getItemMeta(); - if (itemMeta instanceof LeatherArmorMeta) { - if (colors.containsKey(cosmetic.getSlot())) { - ((LeatherArmorMeta) itemMeta).setColor(colors.get(cosmetic.getSlot())); + if (colors.containsKey(cosmetic.getSlot())) { + Color color = colors.get(cosmetic.getSlot()); + if (itemMeta instanceof LeatherArmorMeta leatherMeta) { + leatherMeta.setColor(color); + } else if (itemMeta instanceof PotionMeta potionMeta) { + potionMeta.setColor(color); + } else if (itemMeta instanceof MapMeta mapMeta) { + mapMeta.setColor(color); } } item.setItemMeta(itemMeta);