| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package me.lethunderhawk.clans.gui;
- import me.lethunderhawk.bazaarflux.util.gui.InventoryGUI;
- import me.lethunderhawk.clans.Clan;
- import me.lethunderhawk.clans.claim.Claim;
- import me.lethunderhawk.clans.claim.ClaimManager;
- import me.lethunderhawk.main.Main;
- 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.event.inventory.ClickType;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import java.util.List;
- import java.util.concurrent.atomic.AtomicInteger;
- public class ClaimSettingsGUI extends InventoryGUI {
- private final Player player;
- private final Clan clan;
- public ClaimSettingsGUI(Player player, Clan clan) {
- super("Claim Settings", 36);
- this.player = player;
- this.clan = clan;
- buildGUI();
- }
- private void buildGUI() {
- fillGlassPaneBackground();
- setBackButton(30);
- setCloseButton(31);
- buildItems();
- }
- private void buildItems() {
- AtomicInteger slot = new AtomicInteger();
- clan.getClaims().forEach(claim -> {
- setItemWithClickAction(slot.get(), buildItemFromClaim(claim), (p, type)->{
- if(type == ClickType.LEFT || type == ClickType.SHIFT_LEFT){
- renameClaim(claim);
- }else if(type == ClickType.RIGHT || type == ClickType.SHIFT_RIGHT){
- ConfirmationMenu confirmationMenu = new ConfirmationMenu("Delete Claim?", (pl) ->{
- removeClaim(claim);
- });
- this.openNext(p, confirmationMenu);
- }
- });
- slot.getAndIncrement();
- });
- }
- private void removeClaim(Claim claim) {
- ClaimManager manager = Main.getInstance().getClanModule().getClaimManager();
- manager.removeClaim(claim);
- }
- private void renameClaim(Claim claim) {
- }
- private ItemStack buildItemFromClaim(Claim claim) {
- ItemStack item = new ItemStack(Material.GRASS_BLOCK);
- ItemMeta meta = item.getItemMeta();
- meta.displayName(Component.text(claim.getName(), NamedTextColor.GOLD));
- meta.lore(List.of(
- Component.text("Spans from x=" + claim.getMaxX() + ", z=" + claim.getMaxZ(), NamedTextColor.GRAY),
- Component.text("to x=" + claim.getMinX() + ", z=" + claim.getMinZ(), NamedTextColor.GRAY),
- Component.text("Volume: " + claim.getVolume() + " blocks²", NamedTextColor.GRAY),
- Component.text(""),
- Component.text("Left click to rename", NamedTextColor.YELLOW),
- Component.text("Right click to remove", NamedTextColor.YELLOW)
- ));
- item.setItemMeta(UnItalic.removeItalicFromMeta(meta));
- return item;
- }
- @Override
- public void update() {
- buildGUI();
- }
- }
|