Newer
Older
ChallengeSystem / src / main / java / de / fanta / challenges / guis / ResetGui.java
@fanta fanta on 13 May 2024 2 KB Move GuiUtils to CubesideUtils
package de.fanta.challenges.guis;

import de.fanta.challenges.Challenges;
import de.fanta.challenges.ServerType;
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 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;

public class ResetGui extends AbstractWindow {

    private static final Challenges plugin = Challenges.getPlugin();

    private static final int RESET_INDEX = 2;

    public static final int INVENTORY_SIZE = 5;

    public ResetGui(Player player) {
        super(player, Bukkit.createInventory(player, InventoryType.HOPPER, plugin.getGUIPREFIX() + " >> Reset"));
    }

    @Override
    public void onItemClicked(InventoryClickEvent event) {
        if (!mayAffectThisInventory(event)) {
            return;
        }

        event.setCancelled(true);
        if (!getInventory().equals(event.getClickedInventory())) {
            return;
        }

        int slot = event.getSlot();
        if (slot == RESET_INDEX) {
            plugin.getScheduler().run(() -> Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "reset confirm"));
        }
    }

    @Override
    protected void rebuildInventory() {
        for (int i = 0; i < INVENTORY_SIZE; i++) {
            ItemStack item;
            if (i == RESET_INDEX) {
                if (plugin.getServerType() == ServerType.CHALLENGE && !Config.getBoolean("editsettings")) {
                    item = GUIUtils.createGuiItem(Material.REPEATING_COMMAND_BLOCK, ChatUtil.RED + "Server resetten", ChatUtil.RED + "Wenn du denn Server resettest,", ChatUtil.RED + "wird der Server komplett zurückgesetzt.", "", ChatUtil.GREEN + "Die Map wird als AutoSave gespeichert.", ChatUtil.GREEN + "und kann in der Lobby wieder geladen werden.", "", ChatUtil.ORANGE + "Die Challenge zählt nicht mehr als SpeedRun");
                } else {
                    item = GUIUtils.createGuiItem(Material.REPEATING_COMMAND_BLOCK, ChatUtil.RED + "Server resetten", ChatUtil.RED + "Wenn du denn Server resettest,", ChatUtil.RED + "wird der Server komplett zurückgesetzt.", "", ChatUtil.GREEN + "Die Map wird als AutoSave gespeichert.", ChatUtil.GREEN + "und kann in der Lobby wieder geladen werden.");
                }

            } else {
                item = GUIUtils.EMPTY_ICON;
            }
            this.getInventory().setItem(i, item);
        }
    }
}