Allow bans on players who have never connected.

This commit is contained in:
KHobbits 2012-09-15 20:57:44 +01:00
parent 3e06c06827
commit cdf2c8beed

View file

@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
import com.earth2me.essentials.Console; import com.earth2me.essentials.Console;
import static com.earth2me.essentials.I18n._; import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.OfflinePlayer;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.Server; import org.bukkit.Server;
@ -23,7 +24,15 @@ public class Commandban extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); 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 (!user.isOnline())
{ {
if (sender instanceof Player if (sender instanceof Player
@ -41,7 +50,7 @@ public class Commandban extends EssentialsCommand
return; return;
} }
} }
final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME; final String senderName = sender instanceof Player ? ((Player)sender).getDisplayName() : Console.NAME;
String banReason; String banReason;
if (args.length > 1) if (args.length > 1)
@ -52,11 +61,11 @@ public class Commandban extends EssentialsCommand
{ {
banReason = _("banFormat", _("defaultBanReason"), senderName); banReason = _("banFormat", _("defaultBanReason"), senderName);
} }
user.setBanReason(banReason); user.setBanReason(banReason);
user.setBanned(true); user.setBanned(true);
user.kickPlayer(banReason); user.kickPlayer(banReason);
server.getLogger().log(Level.INFO, _("playerBanned", senderName, user.getName(), banReason)); server.getLogger().log(Level.INFO, _("playerBanned", senderName, user.getName(), banReason));
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())