1 package org.bukkit.command.defaults;
4 import java.util.regex.Pattern;
6 import org.apache.commons.lang.StringUtils;
7 import org.apache.commons.lang.Validate;
15 import com.google.common.collect.ImmutableList;
18 public static final Pattern ipValidity = Pattern.compile(
"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");
22 this.description =
"Prevents the specified IP address from using this server";
23 this.usageMessage =
"/ban-ip <address|player> [reason ...]";
28 public boolean execute(
CommandSender sender, String currentAlias, String[] args) {
30 if (args.length < 1) {
35 String reason = args.length > 0 ? StringUtils.join(args,
' ', 1, args.length) : null;
37 if (ipValidity.matcher(args[0]).matches()) {
38 processIPBan(args[0], sender, reason);
47 processIPBan(player.
getAddress().getAddress().getHostAddress(), sender, reason);
53 private void processIPBan(String ip,
CommandSender sender, String reason) {
58 if (player.getAddress().getAddress().getHostAddress().equals(ip)) {
59 player.kickPlayer(
"You have been IP banned.");
63 Command.broadcastCommandMessage(sender,
"Banned IP Address " + ip);
67 public List<String> tabComplete(
CommandSender sender, String alias, String[] args)
throws IllegalArgumentException {
68 Validate.notNull(sender,
"Sender cannot be null");
69 Validate.notNull(args,
"Arguments cannot be null");
70 Validate.notNull(alias,
"Alias cannot be null");
72 if (args.length == 1) {
73 return super.tabComplete(sender, alias, args);
75 return ImmutableList.of();
boolean testPermission(CommandSender target)
InetSocketAddress getAddress()
void sendMessage(String message)
void setPermission(String permission)
static BanList getBanList(BanList.Type type)
BanEntry addBan(String target, String reason, Date expires, String source)
static Player[] getOnlinePlayers()
static Player getPlayer(String name)