Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
PardonCommand.java
Go to the documentation of this file.
1 package org.bukkit.command.defaults;
2 
3 import java.util.ArrayList;
4 import java.util.List;
5 
6 import org.apache.commons.lang.Validate;
7 import org.bukkit.Bukkit;
8 import org.bukkit.ChatColor;
9 import org.bukkit.OfflinePlayer;
10 import org.bukkit.command.Command;
11 import org.bukkit.command.CommandSender;
12 import org.bukkit.util.StringUtil;
13 
14 import com.google.common.collect.ImmutableList;
15 
16 public class PardonCommand extends VanillaCommand {
17  public PardonCommand() {
18  super("pardon");
19  this.description = "Allows the specified player to use this server";
20  this.usageMessage = "/pardon <player>";
21  this.setPermission("bukkit.command.unban.player");
22  }
23 
24  @Override
25  public boolean execute(CommandSender sender, String currentAlias, String[] args) {
26  if (!testPermission(sender)) return true;
27  if (args.length != 1) {
28  sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage);
29  return false;
30  }
31 
32  Bukkit.getOfflinePlayer(args[0]).setBanned(false);
33  Command.broadcastCommandMessage(sender, "Pardoned " + args[0]);
34  return true;
35  }
36 
37  @Override
38  public List<String> tabComplete(CommandSender sender, String alias, String[] args) throws IllegalArgumentException {
39  Validate.notNull(sender, "Sender cannot be null");
40  Validate.notNull(args, "Arguments cannot be null");
41  Validate.notNull(alias, "Alias cannot be null");
42 
43  if (args.length == 1) {
44  List<String> completions = new ArrayList<String>();
45  for (OfflinePlayer player : Bukkit.getBannedPlayers()) {
46  String name = player.getName();
47  if (StringUtil.startsWithIgnoreCase(name, args[0])) {
48  completions.add(name);
49  }
50  }
51  return completions;
52  }
53  return ImmutableList.of();
54  }
55 }