package de.fanta.challenges.commands.timer;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.ServerType;
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.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class TimerReverseCommand extends SubCommand {
private final Challenges plugin;
public TimerReverseCommand(Challenges plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) {
if (!(sender instanceof Player)) {
ChatUtil.sendErrorMessage(sender, "You are not a Player :>");
return true;
}
if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) {
plugin.getTimer().reverseTimer();
if (plugin.getTimer().isReverse()) {
ChatUtil.sendBrodcastMessage(Component.text("Der Timer läuft nun rückwärts!", ChatUtil.BLUE));
} else {
ChatUtil.sendBrodcastMessage(Component.text("Der Timer läuft nun vorwärts!", ChatUtil.GREEN));
}
if (plugin.getServerType() == ServerType.CHALLENGE) {
if (!Config.getBoolean("editsettings")) {
Config.setValue("editsettings", true, false);
plugin.getLogger().info("Diese Challenge ist kein SpeedRun mehr da der Timer bearbeitet wurde.");
if (plugin.getCurrentEditor() != null) {
ChatUtil.sendWarningMessage(plugin.getCurrentEditor(), "Diese Challenge wird nicht mehr als Speed Run gezählt, da du etwas am Timer geändert hast.");
}
}
}
} else if (plugin.getCurrentEditor() != null) {
ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!");
return true;
} else {
ChatUtil.sendErrorMessage(sender, "Aktuell gibt es keinen Editor!");
ChatUtil.sendErrorMessage(sender, "Um selbst Editor zu werden musst du dir im Freebuild VIP kaufen!");
return true;
}
return true;
}
}