package me.lethunderhawk.clans.gui; import me.lethunderhawk.bazaarflux.util.gui.InventoryGUI; import me.lethunderhawk.clans.Clan; import me.lethunderhawk.main.util.UnItalic; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import java.util.List; public class ClanGUI extends InventoryGUI { private final Clan clan; private final Player player; public ClanGUI(Clan clan, Player player) { super("Main Clan Menu", 36); this.clan = clan; this.player = player; buildMenu(); } private void buildMenu() { fillBackground(Material.GRAY_STAINED_GLASS_PANE, " "); buildSettings(); buildMemberList(); buildClaimList(); buildAdminList(); } private void buildClaimList() { ItemStack claimList = buildClaimListItem(); setItemWithClickAction(15, claimList, (p, click) -> { openNext(p, new ClaimSettingsGUI(player, clan)); }); } private ItemStack buildClaimListItem() { ItemStack claimListItem = new ItemStack(Material.GRASS_BLOCK); ItemMeta meta = claimListItem.getItemMeta(); meta.displayName(Component.text("Claim List", NamedTextColor.GOLD)); meta.lore(List.of( Component.text("Modify all claims", NamedTextColor.GRAY), Component.text("inside your clan", NamedTextColor.GRAY) )); claimListItem.setItemMeta(UnItalic.removeItalicFromMeta(meta)); return claimListItem; } private void buildMemberList() { ItemStack memberList = buildMemberListIem(); setItemWithClickAction(13, memberList, (p, click) -> { openNext(p, new MemberListGUI(player)); }); } private ItemStack buildMemberListIem() { ItemStack memberListItem = new ItemStack(Material.PLAYER_HEAD); ItemMeta meta = memberListItem.getItemMeta(); meta.displayName(Component.text("Member List", NamedTextColor.GOLD)); meta.lore(List.of( Component.text("Open a list of all", NamedTextColor.GRAY), Component.text("members in your clan", NamedTextColor.GRAY) )); memberListItem.setItemMeta(UnItalic.removeItalicFromMeta(meta)); return memberListItem; } private void buildSettings() { ItemStack settings = buildSettingsItem(); setItemWithClickAction(11, settings, (p, click) -> { openNext(p, new ClanSettingsGUI(player, clan.getSettings())); }); } private ItemStack buildSettingsItem() { ItemStack settingsItem = new ItemStack(Material.REDSTONE_TORCH); ItemMeta meta = settingsItem.getItemMeta(); meta.displayName(Component.text("Settings", NamedTextColor.GOLD)); meta.lore(List.of( Component.text("Configure the settings", NamedTextColor.GRAY), Component.text("of your Clan", NamedTextColor.GRAY) )); settingsItem.setItemMeta(UnItalic.removeItalicFromMeta(meta)); return settingsItem; } private void buildAdminList() { if(player.hasPermission("clan.admin")) { ItemStack admin = buildAdminItem(); setItemWithClickAction(35, admin, (p, click) -> { openNext(p, new AdminMenuGUI(player)); }); } } private ItemStack buildAdminItem() { ItemStack admin = new ItemStack(Material.COMMAND_BLOCK); ItemMeta meta = admin.getItemMeta(); meta.displayName(Component.text("Open the Admin panel", NamedTextColor.GOLD)); meta.lore(List.of( Component.text("Get access to all clans and edit their properties") )); admin.setItemMeta(UnItalic.removeItalicFromMeta(meta)); return admin; } @Override public void update() { } }