package de.fanta.challenges.guis.settingsgui;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.utils.guiutils.GUIUtils;
import de.iani.cubesideutils.bukkit.items.CustomHeads;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
public class OtherSettingsGui implements Listener {
private static final Challenges plugin = Challenges.getPlugin();
public static final int INVENTORY_SIZE = 27;
private static final int BACK_INDEX = 18;
private static final int BACKPACK_INDEX = 10;
private static final int DMG_INCHAT_INDEX = 11;
private static final int TNT_DEATH_INDEX = 12;
private static final int TAB_HP_INDEX = 13;
private static final int BACKPACK_ADD_INDEX = 1;
private static final int BACKPACK_REMOVE_INDEX = 19;
public static final Inventory OTHER_SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Other Settings");
private static final int CLOSE_IDEX = 26;
public static void createOtherSettingsGUI(Player p) {
OTHER_SETTINGS_GUI.setItem(BACKPACK_INDEX, GUIUtils.createGuiItem(Material.LIME_SHULKER_BOX, ChatColor.GREEN + "Rucksack Größe: " + plugin.getBackpack().getSize() / 9 + "/6"));
if (plugin.getBackpack().getSize() < 6 * 9) {
OTHER_SETTINGS_GUI.setItem(BACKPACK_ADD_INDEX, CustomHeads.QUARTZ_ARROW_UP.getHead());
} else {
OTHER_SETTINGS_GUI.setItem(BACKPACK_ADD_INDEX, GUIUtils.EMPTY_ICON);
}
if (plugin.getBackpack().getSize() > 9) {
OTHER_SETTINGS_GUI.setItem(BACKPACK_REMOVE_INDEX, CustomHeads.QUARTZ_ARROW_DOWN.getHead());
} else {
OTHER_SETTINGS_GUI.setItem(BACKPACK_REMOVE_INDEX, GUIUtils.EMPTY_ICON);
}
if (plugin.getConfig().getBoolean("dmginchat")) {
OTHER_SETTINGS_GUI.setItem(DMG_INCHAT_INDEX, GUIUtils.createGuiItem(Material.PAPER, ChatColor.GREEN + "Schaden im Chat anzeigen aktiviert", true));
} else {
OTHER_SETTINGS_GUI.setItem(DMG_INCHAT_INDEX, GUIUtils.createGuiItem(Material.PAPER, ChatColor.RED + "Schaden im Chat anzeigen deaktiviert"));
}
if (p.hasPermission("challenges.event")) {
if (plugin.getConfig().getBoolean("tntdeath")) {
OTHER_SETTINGS_GUI.setItem(TNT_DEATH_INDEX, GUIUtils.createGuiItem(Material.TNT, ChatColor.GREEN + "Sterben durch TNT aktiviert", true, ChatColor.GREEN + "Tötet dich mit TNT bei der \"nicht springen, schleichen und jumpen\" Challenge"));
} else {
OTHER_SETTINGS_GUI.setItem(TNT_DEATH_INDEX, GUIUtils.createGuiItem(Material.TNT, ChatColor.RED + "Sterben durch TNT deaktiviert", ChatColor.RED + "Tötet dich mit TNT bei der \"nicht springen, schleichen und jumpen\" Challenge"));
}
} else {
OTHER_SETTINGS_GUI.setItem(TNT_DEATH_INDEX, GUIUtils.EMPTY_ICON);
}
if (plugin.getConfig().getBoolean("tabhp")) {
OTHER_SETTINGS_GUI.setItem(TAB_HP_INDEX, GUIUtils.createGuiItem(Material.HEART_OF_THE_SEA, ChatColor.GREEN + "Herzen in der Tablist anzeigen aktiviert", true));
} else {
OTHER_SETTINGS_GUI.setItem(TAB_HP_INDEX, GUIUtils.createGuiItem(Material.HEART_OF_THE_SEA, ChatColor.RED + "Herzen in der Tablist anzeigen deaktiviert"));
}
OTHER_SETTINGS_GUI.setItem(BACK_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatColor.GREEN + "Zurück"));
OTHER_SETTINGS_GUI.setItem(CLOSE_IDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED + "Menü verlassen!"));
for (int i = 0; i < INVENTORY_SIZE; i++) {
if (OTHER_SETTINGS_GUI.getItem(i) == null || OTHER_SETTINGS_GUI.getItem(i).getType() == Material.AIR) {
OTHER_SETTINGS_GUI.setItem(i, GUIUtils.EMPTY_ICON);
}
}
p.openInventory(OTHER_SETTINGS_GUI);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
int slot = e.getRawSlot();
Player p = (Player) e.getWhoClicked();
if (e.getInventory() == OTHER_SETTINGS_GUI) {
switch (slot) {
case BACKPACK_ADD_INDEX:
if (plugin.getBackpack().getSize() < 6 * 9) {
plugin.getBackpack().resize(plugin.getBackpack().getSize() + 9);
}
break;
case BACKPACK_REMOVE_INDEX:
if (plugin.getBackpack().getSize() > 9) {
plugin.getBackpack().resize(plugin.getBackpack().getSize() - 9);
}
break;
case DMG_INCHAT_INDEX:
if (plugin.getConfig().getBoolean("dmginchat")) {
GUIUtils.sendTitleToAll("Einstellungen", "Schaden im Chat anzeigen deaktiviert", ChatColor.RED);
GUIUtils.setConfig("dmginchat", false);
} else {
GUIUtils.sendTitleToAll("Einstellungen", "Schaden im Chat anzeigen aktiviert", ChatColor.GREEN);
GUIUtils.setConfig("dmginchat", true);
}
break;
case TNT_DEATH_INDEX:
if (e.getCurrentItem() != null && e.getCurrentItem().getType() == Material.TNT) {
if (plugin.getConfig().getBoolean("tntdeath")) {
GUIUtils.sendTitleToAll("Einstellungen", "Sterben durch TNT deaktiviert", ChatColor.RED);
GUIUtils.setConfig("tntdeath", false);
} else {
GUIUtils.sendTitleToAll("Einstellungen", "Sterben durch TNT aktiviert", ChatColor.GREEN);
GUIUtils.setConfig("tntdeath", true);
}
}
break;
case TAB_HP_INDEX:
if (plugin.getConfig().getBoolean("tabhp")) {
GUIUtils.sendTitleToAll("Einstellungen", "Herzen in der Tablist anzeigen deaktiviert", ChatColor.RED);
GUIUtils.setConfig("tabhp", false);
} else {
GUIUtils.sendTitleToAll("Einstellungen", "Herzen in der Tablist anzeigen aktiviert", ChatColor.GREEN);
GUIUtils.setConfig("tabhp", true);
}
plugin.getSBManager().updateTabHP();
break;
}
createOtherSettingsGUI(p);
switch (slot) {
case BACK_INDEX:
MainGui.createMainGUI(p);
break;
case CLOSE_IDEX:
p.closeInventory();
break;
}
e.setCancelled(true);
}
}
}