Newer
Older
ChallengeSystem / src / main / java / de / fanta / challenges / commands / event / EventToggleCommand.java
@fanta fanta on 31 May 2024 2 KB components :')
package de.fanta.challenges.commands.event;

import de.fanta.challenges.Challenges;
import de.fanta.challenges.events.ChallengeEventStatusChangedEvent;
import de.fanta.challenges.events.EventStatusChangedEvent;
import de.fanta.challenges.utils.ChatUtil;
import de.fanta.challenges.utils.Config;
import de.iani.cubesideutils.bukkit.commands.SubCommand;
import de.iani.cubesideutils.commands.ArgsParser;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class EventToggleCommand extends SubCommand {

    private final Challenges plugin;
    private final boolean enable;

    public EventToggleCommand(Challenges plugin, boolean enable) {
        this.plugin = plugin;
        this.enable = enable;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) {
        Player p = (Player) sender;
        if (!p.hasPermission("challenges.event")) {
            ChatUtil.sendErrorMessage(p, "Keine Berechtigung");
            return true;
        }
        if (enable) {
            if (!Config.getBoolean("event.enabled")) {
                Config.setValue("event.enabled", true);
                Bukkit.getPluginManager().callEvent(new EventStatusChangedEvent(true));
                ChatUtil.sendTitleToAll(Component.text("Event"), Component.text("Event-Modus aktiviert", ChatUtil.GREEN));
            } else {
                ChatUtil.sendErrorMessage(p, "Das Event läuft bereits!");
                return true;
            }
        } else {
            if (Config.getBoolean("event.enabled")) {
                Config.setValue("event.enabled", false);
                Bukkit.getPluginManager().callEvent(new EventStatusChangedEvent(false));
                Bukkit.getPluginManager().callEvent(new ChallengeEventStatusChangedEvent(false));
                plugin.getTimer().stopTimer();
                ChatUtil.sendTitleToAll(Component.text("Event"), Component.text("Event-Modus deaktiviert", ChatUtil.RED));
            } else {
                ChatUtil.sendErrorMessage(p, "Aktuell läuft kein Event!");
                return true;
            }
        }
        plugin.getSBManager().updateEventScoreboard();
        return true;
    }
}