Bukkit  1.4.7-R1.0
 All Classes Namespaces Files Functions Variables Enumerator Pages
BanListCommand.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.OfflinePlayer;
9 import org.bukkit.command.CommandSender;
10 import org.bukkit.util.StringUtil;
11 
12 import com.google.common.collect.ImmutableList;
13 
14 public class BanListCommand extends VanillaCommand {
15  private static final List<String> BANLIST_TYPES = ImmutableList.of("ips", "players");
16 
17  public BanListCommand() {
18  super("banlist");
19  this.description = "View all players banned from this server";
20  this.usageMessage = "/banlist [ips|players]";
21  this.setPermission("bukkit.command.ban.list");
22  }
23 
24  @Override
25  public boolean execute(CommandSender sender, String currentAlias, String[] args) {
26  if (!testPermission(sender)) return true;
27 
28  // TODO: ips support
29  StringBuilder message = new StringBuilder();
30  OfflinePlayer[] banlist = Bukkit.getServer().getBannedPlayers().toArray(new OfflinePlayer[0]);
31 
32  for (int x = 0; x < banlist.length; x++) {
33  if (x != 0) {
34  if (x == banlist.length - 1) {
35  message.append(" and ");
36  } else {
37  message.append(", ");
38  }
39  }
40  message.append(banlist[x].getName());
41  }
42 
43  sender.sendMessage("There are " + banlist.length + " total banned players:");
44  sender.sendMessage(message.toString());
45  return true;
46  }
47 
48  @Override
49  public List<String> tabComplete(CommandSender sender, String alias, String[] args) {
50  Validate.notNull(sender, "Sender cannot be null");
51  Validate.notNull(args, "Arguments cannot be null");
52  Validate.notNull(alias, "Alias cannot be null");
53 
54  if (args.length == 1) {
55  return StringUtil.copyPartialMatches(args[0], BANLIST_TYPES, new ArrayList<String>(BANLIST_TYPES.size()));
56  }
57  return ImmutableList.of();
58  }
59 }