ClanGUI.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package me.lethunderhawk.clans.gui;
  2. import me.lethunderhawk.bazaarflux.util.gui.InventoryGUI;
  3. import me.lethunderhawk.clans.Clan;
  4. import me.lethunderhawk.main.util.UnItalic;
  5. import net.kyori.adventure.text.Component;
  6. import net.kyori.adventure.text.format.NamedTextColor;
  7. import org.bukkit.Material;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.inventory.ItemStack;
  10. import org.bukkit.inventory.meta.ItemMeta;
  11. import java.util.List;
  12. public class ClanGUI extends InventoryGUI {
  13. private final Clan clan;
  14. private final Player player;
  15. public ClanGUI(Clan clan, Player player) {
  16. super("Main Clan Menu", 36);
  17. this.clan = clan;
  18. this.player = player;
  19. buildMenu();
  20. }
  21. private void buildMenu() {
  22. fillBackground(Material.GRAY_STAINED_GLASS_PANE, " ");
  23. buildSettings();
  24. buildMemberList();
  25. buildClaimList();
  26. buildAdminList();
  27. }
  28. private void buildClaimList() {
  29. ItemStack claimList = buildClaimListItem();
  30. setItemWithClickAction(15, claimList, (p, click) -> {
  31. openNext(p, new ClaimSettingsGUI(player, clan));
  32. });
  33. }
  34. private ItemStack buildClaimListItem() {
  35. ItemStack claimListItem = new ItemStack(Material.GRASS_BLOCK);
  36. ItemMeta meta = claimListItem.getItemMeta();
  37. meta.displayName(Component.text("Claim List", NamedTextColor.GOLD));
  38. meta.lore(List.of(
  39. Component.text("Modify all claims", NamedTextColor.GRAY),
  40. Component.text("inside your clan", NamedTextColor.GRAY)
  41. ));
  42. claimListItem.setItemMeta(UnItalic.removeItalicFromMeta(meta));
  43. return claimListItem;
  44. }
  45. private void buildMemberList() {
  46. ItemStack memberList = buildMemberListIem();
  47. setItemWithClickAction(13, memberList, (p, click) -> {
  48. openNext(p, new MemberListGUI(player));
  49. });
  50. }
  51. private ItemStack buildMemberListIem() {
  52. ItemStack memberListItem = new ItemStack(Material.PLAYER_HEAD);
  53. ItemMeta meta = memberListItem.getItemMeta();
  54. meta.displayName(Component.text("Member List", NamedTextColor.GOLD));
  55. meta.lore(List.of(
  56. Component.text("Open a list of all", NamedTextColor.GRAY),
  57. Component.text("members in your clan", NamedTextColor.GRAY)
  58. ));
  59. memberListItem.setItemMeta(UnItalic.removeItalicFromMeta(meta));
  60. return memberListItem;
  61. }
  62. private void buildSettings() {
  63. ItemStack settings = buildSettingsItem();
  64. setItemWithClickAction(11, settings, (p, click) -> {
  65. openNext(p, new ClanSettingsGUI(player, clan.getSettings()));
  66. });
  67. }
  68. private ItemStack buildSettingsItem() {
  69. ItemStack settingsItem = new ItemStack(Material.REDSTONE_TORCH);
  70. ItemMeta meta = settingsItem.getItemMeta();
  71. meta.displayName(Component.text("Settings", NamedTextColor.GOLD));
  72. meta.lore(List.of(
  73. Component.text("Configure the settings", NamedTextColor.GRAY),
  74. Component.text("of your Clan", NamedTextColor.GRAY)
  75. ));
  76. settingsItem.setItemMeta(UnItalic.removeItalicFromMeta(meta));
  77. return settingsItem;
  78. }
  79. private void buildAdminList() {
  80. if(player.hasPermission("clan.admin")) {
  81. ItemStack admin = buildAdminItem();
  82. setItemWithClickAction(35, admin, (p, click) -> {
  83. openNext(p, new AdminMenuGUI(player));
  84. });
  85. }
  86. }
  87. private ItemStack buildAdminItem() {
  88. ItemStack admin = new ItemStack(Material.COMMAND_BLOCK);
  89. ItemMeta meta = admin.getItemMeta();
  90. meta.displayName(Component.text("Open the Admin panel", NamedTextColor.GOLD));
  91. meta.lore(List.of(
  92. Component.text("Get access to all clans and edit their properties")
  93. ));
  94. admin.setItemMeta(UnItalic.removeItalicFromMeta(meta));
  95. return admin;
  96. }
  97. @Override
  98. public void update() {
  99. }
  100. }