9
0
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:
Boy
2022-12-08 21:46:28 +01:00
parent d9acf2eb53
commit 1bd26129bf
4 changed files with 52 additions and 21 deletions

View File

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