9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-31 21:06:38 +00:00

add dyeing support for potions and maps

This commit is contained in:
Boy
2023-01-29 18:10:22 +01:00
parent 66c5fd86c5
commit 88632dce3f
2 changed files with 18 additions and 10 deletions

View File

@@ -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));

View File

@@ -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);