mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2026-01-06 15:51:50 +00:00
dye menu impl
This commit is contained in:
@@ -1,17 +1,25 @@
|
||||
package com.hibiscusmc.hmccosmetics.gui.special;
|
||||
|
||||
import com.hibiscusmc.hmccolor.HMCColorApi;
|
||||
import com.hibiscusmc.hmccolor.gui.guis.Gui;
|
||||
import com.hibiscusmc.hmccolor.gui.guis.GuiItem;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticArmorType;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticBackpackType;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUsers;
|
||||
import com.hibiscusmc.hmccosmetics.util.misc.Adventure;
|
||||
import com.hibiscusmc.hmccosmetics.util.misc.Placeholder;
|
||||
import dev.triumphteam.gui.builder.item.ItemBuilder;
|
||||
import dev.triumphteam.gui.guis.Gui;
|
||||
import dev.triumphteam.gui.guis.GuiItem;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Color;
|
||||
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.PotionMeta;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class DyeMenu {
|
||||
|
||||
@@ -20,27 +28,31 @@ public class DyeMenu {
|
||||
|
||||
public static void openMenu(CosmeticUser user, Cosmetic cosmetic) {
|
||||
|
||||
ItemStack originalItem = null;
|
||||
|
||||
if (cosmetic instanceof CosmeticBackpackType) originalItem = ((CosmeticBackpackType) cosmetic).getBackpackItem();
|
||||
if (cosmetic instanceof CosmeticArmorType) originalItem = ((CosmeticArmorType) cosmetic).getCosmeticItem();
|
||||
if (originalItem == null) return;
|
||||
ItemStack originalItem = user.getUserCosmeticItem(cosmetic);
|
||||
if (originalItem == null || !cosmetic.isDyable()) return;
|
||||
|
||||
Player player = user.getPlayer();
|
||||
final Component component = Adventure.MINI_MESSAGE.deserialize(Placeholder.applyPapiPlaceholders(player, "Dying Menu"));
|
||||
Gui gui = Gui.gui().
|
||||
title(component).
|
||||
rows(6).
|
||||
create();
|
||||
|
||||
gui.setDefaultClickAction(event -> event.setCancelled(true));
|
||||
|
||||
gui.setItem(1, ItemBuilder.from(originalItem).asGuiItem());
|
||||
GuiItem guiItem = ItemBuilder.from(originalItem).asGuiItem();
|
||||
HMCColorApi hmcColorApi = new HMCColorApi();
|
||||
Gui gui = hmcColorApi.getColorMenu();
|
||||
gui.updateTitle(Placeholder.applyPapiPlaceholders(player, "Dyeing Menu"));
|
||||
gui.setItem(19, new GuiItem(originalItem));
|
||||
gui.setDefaultTopClickAction(event -> {
|
||||
if (event.getSlot() == 25) {
|
||||
ItemStack item = event.getInventory().getItem(25);
|
||||
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;
|
||||
if (color == null) return;
|
||||
//user.removeCosmeticSlot(cosmetic);
|
||||
user.addPlayerCosmetic(cosmetic, color);
|
||||
player.closeInventory();
|
||||
} else event.setCancelled(true);
|
||||
});
|
||||
|
||||
gui.setPlayerInventoryAction(event -> event.setCancelled(true));
|
||||
gui.setCloseGuiAction(event -> player.closeInventory());
|
||||
gui.open(player);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user