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;
}
}