summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandban.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandban.java b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
index f98cce98a..5f70df273 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandban.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandban.java
@@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
import com.earth2me.essentials.Console;
import static com.earth2me.essentials.I18n._;
+import com.earth2me.essentials.OfflinePlayer;
import com.earth2me.essentials.User;
import java.util.logging.Level;
import org.bukkit.Server;
@@ -23,7 +24,15 @@ public class Commandban extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final User user = getPlayer(server, args, 0, true);
+ User user;
+ try
+ {
+ user = getPlayer(server, args, 0, true);
+ }
+ catch (NoSuchFieldException e)
+ {
+ user = ess.getUser(new OfflinePlayer(args[0], ess));
+ }
if (!user.isOnline())
{
if (sender instanceof Player
@@ -41,7 +50,7 @@ public class Commandban extends EssentialsCommand
return;
}
}
-
+
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
String banReason;
if (args.length > 1)
@@ -52,11 +61,11 @@ public class Commandban extends EssentialsCommand
{
banReason = _("banFormat", _("defaultBanReason"), senderName);
}
-
+
user.setBanReason(banReason);
user.setBanned(true);
user.kickPlayer(banReason);
-
+
server.getLogger().log(Level.INFO, _("playerBanned", senderName, user.getName(), banReason));
for (Player onlinePlayer : server.getOnlinePlayers())