package org.buckit.commands.admin; import java.util.List; import java.util.logging.Logger; import org.buckit.Config; import org.bukkit.Server; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class KickCommand extends Command { private final Server server; public KickCommand(String name, Server server) { super(name); this.description = "Kick a player."; this.usageMessage = "Usage: /kick [player] [reason]"; this.accessname = "buckit.admin.kick"; this.server = server; } @Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (args.length < 2) { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Insufficient arguments specified:"); sender.sendMessage(Config.DEFAULT_ERROR_COLOR + this.getUsage()); return true; } List<Player> receivers = server.matchPlayer(args[0]); if (receivers.size() == 0) { sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "No players found to kick."); return true; } else if (receivers.size() == 1) { String out = ""; for (int i=1; i<args.length; i++) { out += args[i]+" "; } receivers.get(0).kickPlayer(out); Logger log = Logger.getLogger(KickCommand.class.getName()); log.info("Player " + receivers.get(0).getDisplayName() + " has been kicked by " + (sender instanceof Player ? ((Player)sender).getName() : "CONSOLE" ) + " with reason: " + out); return true; } else { String names = ""; for (int i=0; i<receivers.size(); i++) names += ", " + receivers.get(i).getDisplayName() + Config.DEFAULT_ERROR_COLOR; names = names.substring(2); sender.sendMessage(Config.DEFAULT_ERROR_COLOR + "Multiple players found to kick: "+names+"."); return true; } } }