Newer
Older
ChallengeSystem / src / main / java / de / fanta / challenges / commands / challenges / ChallengesKickCommand.java
@vollkorntomate vollkorntomate on 25 Jul 2020 2 KB fix spelling and cleanup imports
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;
        }
    }
}