From cdf2c8beed14b647f1232eb466f7773d7a56aadf Mon Sep 17 00:00:00 2001
From: KHobbits <rob@khobbits.co.uk>
Date: Sat, 15 Sep 2012 20:57:44 +0100
Subject: Allow bans on players who have never connected.

---
 .../com/earth2me/essentials/commands/Commandban.java    | 17 +++++++++++++----
 1 file 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())
-- 
cgit v1.2.3