package de.fanta.challenges.commands.challenges;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.utils.ChatUtil;
import de.iani.cubesideutils.bukkit.commands.SubCommand;
import de.iani.cubesideutils.commands.ArgsParser;
import org.bukkit.BanList;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class ChallengesKickCommand extends SubCommand {
private final Challenges plugin;
public ChallengesKickCommand(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")) {
if (args.hasNext()) {
String playerName = args.getNext();
Player player = Bukkit.getPlayer(playerName);
if (player == sender) {
ChatUtil.sendErrorMessage(sender,"Du kannst dich nicht selbst kicken");
return true;
}
if (player == null) {
ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!");
} else {
player.performCommand("tt challenge");
ChatUtil.sendWarningMessage(player, "Du wurdest vom Editor gekickt!");
ChatUtil.sendWarningMessage(player, "Du kannst in einer Minute wieder joinen");
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
player.banPlayer("Du wurdest vom Editor gekickt");
}, 5L);
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> {
Bukkit.getBanList(BanList.Type.NAME).pardon(player.getName());
}, 20 * 60);
}
return true;
}
return false;
} else if (plugin.getCurrentEditor() != null) {
ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur " + plugin.getCurrentEditor().getName() + " kann Spieler kicken");
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;
}
}
}