package de.fanta.challenges.guis;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.utils.ChatUtil;
import de.fanta.challenges.utils.guiutils.GUIUtils;
import de.iani.cubesideutils.bukkit.inventory.AbstractWindow;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.ItemStack;
import java.io.IOException;
import java.util.List;
public class CheckItemsGUI extends AbstractWindow {
private static final Challenges plugin = Challenges.getPlugin();
private static final int JA_INDEX = 0;
private static final int ITEM_INDEX = 2;
private static final int NEIN_INDEX = 4;
public static final int INVENTORY_SIZE = 5;
public CheckItemsGUI(Player player) {
super(player, Bukkit.createInventory(player, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> geht das?? (" + plugin.getMaterials().size() + ")"));
}
@Override
protected void rebuildInventory() {
if (plugin.getMaterials().isEmpty()) {
getPlayer().closeInventory();
ChatUtil.sendNormalMessage(getPlayer(), "Lol fertig :>");
return;
}
for (int i = 0; i < INVENTORY_SIZE; i++) {
ItemStack item;
ItemStack stack = new ItemStack(plugin.getMaterials().get(0));
switch (i) {
case JA_INDEX -> item = GUIUtils.createGuiItem(Material.LIME_CONCRETE, ChatUtil.GREEN + "Ja", true);
case ITEM_INDEX -> item = stack;
case NEIN_INDEX -> item = GUIUtils.createGuiItem(Material.RED_CONCRETE, ChatUtil.RED + "Nein", true);
default -> item = GUIUtils.EMPTY_ICON;
}
this.getInventory().setItem(i, item);
}
}
@Override
public void onItemClicked(InventoryClickEvent event) {
Player player = getPlayer();
if (!mayAffectThisInventory(event)) {
return;
}
event.setCancelled(true);
if (!getInventory().equals(event.getClickedInventory())) {
return;
}
int slot = event.getSlot();
switch (slot) {
case JA_INDEX -> {
plugin.getMaterials().remove(getInventory().getItem(ITEM_INDEX).getType());
player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F);
}
case NEIN_INDEX -> {
Material material = getInventory().getItem(ITEM_INDEX).getType();
addItem(material);
plugin.getMaterials().remove(material);
player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_BASS, 1.0F, 2.0F);
}
default -> {
}
}
rebuildInventory();
}
public static void addItem(Material material) {
FileConfiguration config = Challenges.getPlugin().getItemConfig();
List<String> list = config.getStringList("items");
list.add(material.name());
config.set("items", list);
try {
Challenges.getPlugin().ItemConfig.save(Challenges.getPlugin().ItemConfigFile);
} catch (IOException e) {
e.printStackTrace();
}
}
}