Newer
Older
ChallengeSystem / src / main / java / de / fanta / challenges / guis / settingsgui / OtherSettingsGui.java
@fanta fanta on 22 Mar 2022 10 KB add "Grabschsteine" :>
package de.fanta.challenges.guis.settingsgui;

import de.fanta.challenges.Challenges;
import de.fanta.challenges.utils.ChatUtil;
import de.fanta.challenges.utils.guiutils.GUIUtils;
import de.iani.cubesideutils.bukkit.items.CustomHeads;
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 {

    public static final int INVENTORY_SIZE = 36;
    private static final Challenges plugin = Challenges.getPlugin();
    public static final Inventory OTHER_SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, plugin.getGUIPREFIX() + " >> Other Settings");
    private static final int BACK_INDEX = 27;
    private static final int BACKPACK_INDEX = 16;
    private static final int DMG_INCHAT_INDEX = 11;
    private static final int TELEPORT_COMMAND_INDEX = 12;
    private static final int TAB_HP_INDEX = 13;
    private static final int DIREKT_SMLET_INDEX = 14;
    private static final int FAST_FURNACE_INDEX = 15;
    private static final int DISABLE_VILLAGER_TRADE_LIMITS_INDEX = 10;
    private static final int BACKPACK_ADD_INDEX = 7;
    private static final int BACKPACK_REMOVE_INDEX = 25;
    private static final int GRAVESTONE_INDEX = 19;
    private static final int CLOSE_IDEX = 35;

    public static void createOtherSettingsGUI(Player p) {
        OTHER_SETTINGS_GUI.setItem(BACKPACK_INDEX, GUIUtils.createGuiItem(Material.LIME_SHULKER_BOX, ChatUtil.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, ChatUtil.GREEN + "Schaden im Chat anzeigen aktiviert", true));
        } else {
            OTHER_SETTINGS_GUI.setItem(DMG_INCHAT_INDEX, GUIUtils.createGuiItem(Material.PAPER, ChatUtil.RED + "Schaden im Chat anzeigen deaktiviert"));
        }

        if (plugin.getConfig().getBoolean("teleportcommand")) {
            OTHER_SETTINGS_GUI.setItem(TELEPORT_COMMAND_INDEX, GUIUtils.createGuiItem(Material.ENDER_PEARL, ChatUtil.GREEN + "Teleport Command aktiviert", true, ChatUtil.GREEN + "Deaktiviert den \"/challenges tp\" command"));
        } else {
            OTHER_SETTINGS_GUI.setItem(TELEPORT_COMMAND_INDEX, GUIUtils.createGuiItem(Material.ENDER_PEARL, ChatUtil.RED + "Teleport Command deaktiviert", ChatUtil.RED + "Aktiviert den \"/challenges tp\" command"));
        }
        if (plugin.getConfig().getBoolean("tabhp")) {
            OTHER_SETTINGS_GUI.setItem(TAB_HP_INDEX, GUIUtils.createGuiItem(Material.HEART_OF_THE_SEA, ChatUtil.GREEN + "Herzen in der Tablist anzeigen aktiviert", true));
        } else {
            OTHER_SETTINGS_GUI.setItem(TAB_HP_INDEX, GUIUtils.createGuiItem(Material.HEART_OF_THE_SEA, ChatUtil.RED + "Herzen in der Tablist anzeigen deaktiviert"));
        }
        if (plugin.getConfig().getBoolean("silkore")) {
            OTHER_SETTINGS_GUI.setItem(DIREKT_SMLET_INDEX, GUIUtils.createGuiItem(Material.IRON_INGOT, ChatUtil.GREEN + "Abgebaute Erze droppen Barren aktiviert", true));
        } else {
            OTHER_SETTINGS_GUI.setItem(DIREKT_SMLET_INDEX, GUIUtils.createGuiItem(Material.IRON_INGOT, ChatUtil.RED + "Abgebaute Erze droppen Barren deaktiviert"));
        }
        if (plugin.getConfig().getBoolean("speedfurnace")) {
            OTHER_SETTINGS_GUI.setItem(FAST_FURNACE_INDEX, GUIUtils.createGuiItem(Material.FURNACE, ChatUtil.GREEN + "Schneller Ofen aktiviert", true));
        } else {
            OTHER_SETTINGS_GUI.setItem(FAST_FURNACE_INDEX, GUIUtils.createGuiItem(Material.FURNACE, ChatUtil.RED + "Schneller Ofen deaktiviert"));
        }
        if (plugin.getConfig().getBoolean("gravestone")) {
            OTHER_SETTINGS_GUI.setItem(GRAVESTONE_INDEX, GUIUtils.createGuiItem(Material.HOPPER, ChatUtil.GREEN + "Grabstein aktiviert", true));
        } else {
            OTHER_SETTINGS_GUI.setItem(GRAVESTONE_INDEX, GUIUtils.createGuiItem(Material.HOPPER, ChatUtil.RED + "Grabstein deaktiviert"));
        }
        if (plugin.getConfig().getBoolean("disablevillagertradelimits")) {
            OTHER_SETTINGS_GUI.setItem(DISABLE_VILLAGER_TRADE_LIMITS_INDEX, GUIUtils.createGuiItem(Material.EMERALD, ChatUtil.GREEN + "Villager Trade Limits aktiviert ", true));
        } else {
            OTHER_SETTINGS_GUI.setItem(DISABLE_VILLAGER_TRADE_LIMITS_INDEX, GUIUtils.createGuiItem(Material.EMERALD, ChatUtil.RED + "Villager Trade Limits deaktiviert (Default)"));
        }


        OTHER_SETTINGS_GUI.setItem(BACK_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatUtil.GREEN + "Zurück"));
        OTHER_SETTINGS_GUI.setItem(CLOSE_IDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatUtil.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", ChatUtil.RED);
                        GUIUtils.setConfig("dmginchat", false);
                    } else {
                        GUIUtils.sendTitleToAll("Einstellungen", "Schaden im Chat anzeigen aktiviert", ChatUtil.GREEN);
                        GUIUtils.setConfig("dmginchat", true);
                    }
                    break;
                case TELEPORT_COMMAND_INDEX:
                    if (plugin.getConfig().getBoolean("teleportcommand")) {
                        GUIUtils.sendTitleToAll("Einstellungen", "Teleport Command deaktiviert", ChatUtil.RED);
                        GUIUtils.setConfig("teleportcommand", false);
                    } else {
                        GUIUtils.sendTitleToAll("Einstellungen", "Teleport Command aktiviert", ChatUtil.GREEN);
                        GUIUtils.setConfig("teleportcommand", true);
                    }
                    break;
                case TAB_HP_INDEX:
                    if (plugin.getConfig().getBoolean("tabhp")) {
                        GUIUtils.sendTitleToAll("Einstellungen", "Herzen in der Tablist anzeigen deaktiviert", ChatUtil.RED);
                        GUIUtils.setConfig("tabhp", false);
                    } else {
                        GUIUtils.sendTitleToAll("Einstellungen", "Herzen in der Tablist anzeigen aktiviert", ChatUtil.GREEN);
                        GUIUtils.setConfig("tabhp", true);
                    }
                    plugin.getSBManager().updateTabHP();
                    break;
                case DIREKT_SMLET_INDEX:
                    if (plugin.getConfig().getBoolean("silkore")) {
                        GUIUtils.sendTitleToAll("Einstellungen", "Abgebaute Erze droppen Barren deaktiviert", ChatUtil.RED);
                        GUIUtils.setConfig("silkore", false);
                    } else {
                        GUIUtils.sendTitleToAll("Einstellungen", "Abgebaute Erze droppen Barren aktiviert", ChatUtil.GREEN);
                        GUIUtils.setConfig("silkore", true);
                    }
                    break;
                case FAST_FURNACE_INDEX:
                    if (plugin.getConfig().getBoolean("speedfurnace")) {
                        GUIUtils.sendTitleToAll("Einstellungen", "Schneller Ofen deaktiviert", ChatUtil.RED);
                        GUIUtils.setConfig("speedfurnace", false);
                    } else {
                        GUIUtils.sendTitleToAll("Einstellungen", "Schneller Ofen aktiviert", ChatUtil.GREEN);
                        GUIUtils.setConfig("speedfurnace", true);
                    }
                    break;
                case DISABLE_VILLAGER_TRADE_LIMITS_INDEX:
                    if (plugin.getConfig().getBoolean("disablevillagertradelimits")) {
                        GUIUtils.sendTitleToAll("Einstellungen", "Villager Trade Limits aktiviert", ChatUtil.RED);
                        GUIUtils.setConfig("disablevillagertradelimits", false);
                    } else {
                        GUIUtils.sendTitleToAll("Einstellungen", "Villager Trade Limits deaktiviert (Default)", ChatUtil.GREEN);
                        GUIUtils.setConfig("disablevillagertradelimits", true);
                    }
                    break;
                case GRAVESTONE_INDEX:
                    if (plugin.getConfig().getBoolean("gravestone")) {
                        GUIUtils.sendTitleToAll("Einstellungen", "Grabsteine deaktiviert", ChatUtil.RED);
                        GUIUtils.setConfig("gravestone", false);
                    } else {
                        GUIUtils.sendTitleToAll("Einstellungen", "Grabsteine aktiviert", ChatUtil.GREEN);
                        GUIUtils.setConfig("gravestone", true);
                    }
                    break;
            }
            createOtherSettingsGUI(p);
            switch (slot) {
                case BACK_INDEX -> MainGui.createMainGUI(p);
                case CLOSE_IDEX -> p.closeInventory();
            }
            e.setCancelled(true);
        }
    }
}