package de.fanta.challenges.guis.challengesettingsguis;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.guis.settingsgui.OtherSettingsGui;
import de.fanta.challenges.utils.ChatUtil;
import de.fanta.challenges.utils.Config;
import de.fanta.challenges.utils.guiutils.GUIUtils;
import de.iani.cubesideutils.bukkit.inventory.AbstractWindow;
import de.iani.cubesideutils.bukkit.items.CustomHeads;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
public class BackPackSettingsGui extends AbstractWindow {
private static final Challenges plugin = Challenges.getPlugin();
private static final int ADD_SIZE_INDEX = 2;
private static final int SIZE_INDEX = 5;
private static final int REMOVE_SIZE_INDEX = 8;
private static final int BACK_INDEX = 6;
public BackPackSettingsGui(Player player) {
super(player, Bukkit.createInventory(player, InventoryType.DISPENSER, plugin.getGUIPREFIX() + " >> Backpack Settings"));
}
@Override
public void onItemClicked(InventoryClickEvent event) {
if (!mayAffectThisInventory(event)) {
return;
}
event.setCancelled(true);
if (!getInventory().equals(event.getClickedInventory())) {
return;
}
int slot = event.getSlot();
int size = plugin.getBackpack().getSize() / 9;
switch (slot) {
case ADD_SIZE_INDEX -> {
if (size <= 5) {
size++;
Config.setValue("backpack_size", size);
plugin.getBackpack().resize(size * 9);
rebuildInventory();
}
}
case REMOVE_SIZE_INDEX -> {
if (size > 1) {
size--;
Config.setValue("backpack_size", size);
plugin.getBackpack().resize(size * 9);
rebuildInventory();
}
}
case BACK_INDEX -> new OtherSettingsGui(getPlayer()).open();
default -> {
}
}
}
@Override
protected void rebuildInventory() {
for (int i = 0; i < 9; i++) {
ItemStack item;
int size = plugin.getBackpack().getSize() / 9;
switch (i) {
case ADD_SIZE_INDEX -> item = CustomHeads.RAINBOW_ARROW_UP.getHead(ChatUtil.GREEN + "Größe +1");
case REMOVE_SIZE_INDEX -> item = CustomHeads.RAINBOW_ARROW_DOWN.getHead(ChatUtil.RED + "Größe -1");
case SIZE_INDEX -> {
ItemStack stack = new ItemStack(Material.STRUCTURE_VOID, size);
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(ChatUtil.GREEN + "Rucksack größe: " + size + "/6");
stack.setItemMeta(meta);
item = stack;
}
case BACK_INDEX -> item = CustomHeads.RAINBOW_ARROW_BACKWARD_II.getHead(ChatUtil.GREEN + "Zurück");
default -> item = GUIUtils.EMPTY_ICON;
}
this.getInventory().setItem(i, item);
}
}
}