From 16384159e7bde8fb895f1b6c26e7fbf8a3a3f259 Mon Sep 17 00:00:00 2001 From: zzbomb Date: Sat, 8 Oct 2011 10:04:07 -0300 Subject: Improved to operate like.. "banip " bans the specified IP or the IP of the user specified. --- .../earth2me/essentials/commands/Commandbanip.java | 48 ++++++++++++++-------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java b/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java index 3301afc87..dff0edcbd 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbanip.java @@ -3,24 +3,40 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.Util; import org.bukkit.Server; import org.bukkit.command.CommandSender; - +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Commandbanip extends EssentialsCommand { - public Commandbanip() - { - super("banip"); - } - - @Override - public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception - { - if (args.length < 1) - { - throw new NotEnoughArgumentsException(); - } + public Commandbanip() + { + super("banip"); + } - ess.getServer().banIP(args[0]); - sender.sendMessage(Util.i18n("banIpAddress")); - } + @Override + public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception + { + if (args.length < 1) + { + throw new NotEnoughArgumentsException(); + } + + if ( isIPAddress(args[0]) { + ess.getServer().banIP(args[0]); + sender.sendMessage(Util.i18n("banIpAddress")); + } + else { + User u = ess.getUser(p); + ess.getServer().banIP(u.getAddress().getAddress().toString()); + sender.sendMessage(Util.i18n("banIpAddress")); + } + } + + private boolean isIPAddress(String str) { + String expression = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"; + Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(str); + + return matcher.matches(); + } } -- cgit v1.2.3