Newer
Older
ChallengeSystem / Challenge / src / main / java / de / fanta / challenge / guis / ResetGui.java
package de.fanta.challenge.guis;

import de.fanta.challenge.Challenge;
import de.fanta.challenge.ServerType;
import de.fanta.challenge.utils.Config;
import de.fanta.challenge.utils.SaveWorldUtils;
import de.fanta.challengeutils.ItemUtils;
import de.fanta.challengeutils.Color;
import de.iani.cubesideutils.bukkit.inventory.AbstractWindow;
import net.kyori.adventure.text.Component;
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 Challenge plugin = Challenge.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().append(Component.text(" >> 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) {
            SaveWorldUtils.restartServer(null, true);
            getPlayer().closeInventory();
            plugin.getComponentUtil().sendNormalMessage(getPlayer(), "Server wird nun neu gestartet!");
        }
    }

    @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 = ItemUtils.createGuiItem(Material.REPEATING_COMMAND_BLOCK, Component.text("Server resetten", Color.RED), Component.text("Wenn du denn Server resettest,", Color.RED), Component.text("wird der Server komplett zurückgesetzt.", Color.RED), Component.empty(), Component.text("Die Map wird als AutoSave gespeichert.", Color.GREEN), Component.text("und kann in der Lobby wieder geladen werden.", Color.GREEN), Component.empty(), Component.text("Die Challenge zählt nicht mehr als SpeedRun", Color.ORANGE));
                } else {
                    item = ItemUtils.createGuiItem(Material.REPEATING_COMMAND_BLOCK, Component.text("Server resetten", Color.RED), Component.text("Wenn du denn Server resettest,", Color.RED), Component.text("wird der Server komplett zurückgesetzt.", Color.RED), Component.empty(), Component.text("Die Map wird als AutoSave gespeichert.", Color.GREEN), Component.text("und kann in der Lobby wieder geladen werden.", Color.GREEN));
                }

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