diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java b/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java index acd06bf5a..888dcbf68 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java @@ -22,8 +22,12 @@ public class Commandtogglejail extends EssentialsCommand throw new NotEnoughArgumentsException(); } - User p = getPlayer(server, args, 0); + User p = getPlayer(server, args, 0, true); + if(p == null) + { + + } if (p.isAuthorized("essentials.jail.exempt")) { sender.sendMessage(Util.i18n("mayNotJail")); diff --git a/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java b/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java index 01ab569a1..ac19f7d74 100644 --- a/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java +++ b/Essentials/src/com/earth2me/essentials/commands/EssentialsCommand.java @@ -22,7 +22,7 @@ public abstract class EssentialsCommand implements IEssentialsCommand { this.name = name; } - + public void setEssentials(IEssentials ess) { this.ess = ess; @@ -34,10 +34,23 @@ public abstract class EssentialsCommand implements IEssentialsCommand } protected User getPlayer(Server server, String[] args, int pos) throws NoSuchFieldException, NotEnoughArgumentsException + { + return getPlayer(server, args, pos, false); + } + + protected User getPlayer(Server server, String[] args, int pos, boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException { if (args.length <= pos) throw new NotEnoughArgumentsException(); List matches = server.matchPlayer(args[pos]); - if (matches.size() < 1) throw new NoSuchFieldException(Util.i18n("playerNotFound")); + + if (matches.size() < 1) + { + if (!getOffline) throw new NoSuchFieldException(Util.i18n("playerNotFound")); + User u = ess.getOfflineUser(args[pos]); + if (u == null) throw new NoSuchFieldException(Util.i18n("playerNotFound")); + return u; + } + for (Player p : matches) { if (p.getDisplayName().startsWith(args[pos]))