package org.bukkit.command.defaults; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.Validate; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.util.StringUtil; import com.google.common.collect.ImmutableList; public class PardonCommand extends VanillaCommand { public PardonCommand() { super("pardon"); this.description = "Allows the specified player to use this server"; this.usageMessage = "/pardon "; this.setPermission("bukkit.command.unban.player"); } @Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (!testPermission(sender)) return true; if (args.length != 1) { sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); return false; } Bukkit.getOfflinePlayer(args[0]).setBanned(false); Command.broadcastCommandMessage(sender, "Pardoned " + args[0]); return true; } @Override public boolean matches(String input) { return input.equalsIgnoreCase("pardon"); } @Override public List tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException { Validate.notNull(sender, "Sender cannot be null"); Validate.notNull(args, "Arguments cannot be null"); Validate.notNull(alias, "Alias cannot be null"); if (args.length == 1) { List completions = new ArrayList(); for (OfflinePlayer player : Bukkit.getBannedPlayers()) { String name = player.getName(); if (StringUtil.startsWithIgnoreCase(name, args[0])) { completions.add(name); } } return completions; } return ImmutableList.of(); } }