Use correct getPlayer method to not match offline users.

This commit is contained in:
KHobbits 2013-03-20 01:04:35 +00:00
parent 889157371c
commit 353423efec
28 changed files with 52 additions and 50 deletions

View File

@ -17,7 +17,7 @@ public class Commandafk extends EssentialsCommand
{ {
if (args.length > 0 && user.isAuthorized("essentials.afk.others")) if (args.length > 0 && user.isAuthorized("essentials.afk.others"))
{ {
User afkUser = getPlayer(server, args, 0); User afkUser = getPlayer(server, user, args, 0);
toggleAfk(afkUser); toggleAfk(afkUser);
} }
else else

View File

@ -21,7 +21,7 @@ public class Commandbalance extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
sender.sendMessage(_("balance", Util.displayCurrency(getPlayer(server, args, 0, true).getMoney(), ess))); sender.sendMessage(_("balance", Util.displayCurrency(getPlayer(server, args, 0, true, true).getMoney(), ess)));
} }
@Override @Override
@ -32,7 +32,7 @@ public class Commandbalance extends EssentialsCommand
|| !(user.isAuthorized("essentials.balance.others") || !(user.isAuthorized("essentials.balance.others")
|| user.isAuthorized("essentials.balance.other")) || user.isAuthorized("essentials.balance.other"))
? user ? user
: getPlayer(server, args, 0, true)).getMoney(); : getPlayer(server, args, 0, true, true)).getMoney();
user.sendMessage(_("balance", Util.displayCurrency(bal, ess))); user.sendMessage(_("balance", Util.displayCurrency(bal, ess)));
} }
} }

View File

@ -29,7 +29,7 @@ public class Commandban extends EssentialsCommand
User user; User user;
try try
{ {
user = getPlayer(server, args, 0, true); user = getPlayer(server, args, 0, true, true);
} }
catch (NoSuchFieldException e) catch (NoSuchFieldException e)
{ {

View File

@ -39,7 +39,7 @@ public class Commanddelhome extends EssentialsCommand
if (expandedArg.length > 1 && (user == null || user.isAuthorized("essentials.delhome.others"))) if (expandedArg.length > 1 && (user == null || user.isAuthorized("essentials.delhome.others")))
{ {
user = getPlayer(server, expandedArg, 0, true); user = getPlayer(server, expandedArg, 0, true, true);
name = expandedArg[1]; name = expandedArg[1];
} }
else if (user == null) else if (user == null)

View File

@ -118,7 +118,7 @@ public class Commandeco extends EssentialsCommand
} }
else else
{ {
final User player = getPlayer(server, args, 1, true); final User player = getPlayer(server, args, 1, true, true);
switch (cmd) switch (cmd)
{ {
case GIVE: case GIVE:

View File

@ -16,7 +16,7 @@ public class Commandenderchest extends EssentialsCommand
{ {
if (args.length > 0 && user.isAuthorized("essentials.enderchest.others")) if (args.length > 0 && user.isAuthorized("essentials.enderchest.others"))
{ {
final User invUser = getPlayer(server, args, 0); final User invUser = getPlayer(server, user, args, 0);
user.openInventory(invUser.getEnderChest()); user.openInventory(invUser.getEnderChest());
user.setEnderSee(true); user.setEnderSee(true);
} }

View File

@ -90,7 +90,7 @@ public class Commandessentials extends EssentialsCommand
{ {
throw new Exception("/<command> reset <player>"); throw new Exception("/<command> reset <player>");
} }
final User user = getPlayer(server, args, 1, true); final User user = getPlayer(server, args, 1, true, true);
user.reset(); user.reset();
sender.sendMessage("Reset Essentials userdata for player: " + user.getDisplayName()); sender.sendMessage("Reset Essentials userdata for player: " + user.getDisplayName());
} }

View File

@ -19,7 +19,7 @@ public class Commandgetpos extends EssentialsCommand
{ {
if (args.length > 0 && user.isAuthorized("essentials.getpos.others")) if (args.length > 0 && user.isAuthorized("essentials.getpos.others"))
{ {
final User otherUser = getPlayer(server, args, 0); final User otherUser = getPlayer(server, args, 0, true, false);
if (!otherUser.isHidden() || user.isAuthorized("essentials.list.hidden")) if (!otherUser.isHidden() || user.isAuthorized("essentials.list.hidden"))
{ {
outputPosition(user, otherUser.getLocation(), user.getLocation()); outputPosition(user, otherUser.getLocation(), user.getLocation());
@ -37,7 +37,7 @@ public class Commandgetpos extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User user = getPlayer(server, args, 0); final User user = getPlayer(server, args, 0, true, false);
outputPosition(sender, user.getLocation(), null); outputPosition(sender, user.getLocation(), null);
} }

View File

@ -34,7 +34,7 @@ public class Commandhome extends EssentialsCommand
} }
else else
{ {
player = getPlayer(server, nameParts, 0, true); player = getPlayer(server, nameParts, 0, true, true);
if (nameParts.length > 1) if (nameParts.length > 1)
{ {
homeName = nameParts[1]; homeName = nameParts[1];

View File

@ -22,7 +22,7 @@ public class Commandignore extends EssentialsCommand
User player; User player;
try try
{ {
player = getPlayer(server, args, 0); player = getPlayer(server, args, 0, true, true);
} }
catch (NoSuchFieldException ex) catch (NoSuchFieldException ex)
{ {

View File

@ -22,7 +22,7 @@ public class Commandinvsee extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User invUser = getPlayer(server, args, 0); final User invUser = getPlayer(server, user, args, 0);
Inventory inv; Inventory inv;
if (args.length > 1 && user.isAuthorized("essentials.invsee.equip")) if (args.length > 1 && user.isAuthorized("essentials.invsee.equip"))

View File

@ -25,7 +25,7 @@ public class Commandkick extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User target = getPlayer(server, args, 0); final User target = getPlayer(server, args, 0, true, false);
if (sender instanceof Player) if (sender instanceof Player)
{ {
User user = ess.getUser(sender); User user = ess.getUser(sender);

View File

@ -30,7 +30,7 @@ public class Commandkit extends EssentialsCommand
} }
else if (args.length > 1 && user.isAuthorized("essentials.kit.others")) else if (args.length > 1 && user.isAuthorized("essentials.kit.others"))
{ {
final User userTo = getPlayer(server, args, 1, true); final User userTo = getPlayer(server, user, args, 1);
final String kitName = Util.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)).trim(); final String kitName = Util.sanitizeString(args[0].toLowerCase(Locale.ENGLISH)).trim();
giveKit(userTo, user, kitName); giveKit(userTo, user, kitName);
} }
@ -52,7 +52,7 @@ public class Commandkit extends EssentialsCommand
} }
else else
{ {
final User userTo = getPlayer(server, args, 1, true); final User userTo = getPlayer(server, args, 1, true, false);
final String kitName = args[0].toLowerCase(Locale.ENGLISH); final String kitName = args[0].toLowerCase(Locale.ENGLISH);
final Map<String, Object> kit = ess.getSettings().getKit(kitName); final Map<String, Object> kit = ess.getSettings().getKit(kitName);

View File

@ -23,7 +23,7 @@ public class Commandmute extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User player = getPlayer(server, args, 0, true); final User player = getPlayer(server, args, 0, true, true);
if (sender instanceof Player && !player.isMuted() && player.isAuthorized("essentials.mute.exempt")) if (sender instanceof Player && !player.isMuted() && player.isAuthorized("essentials.mute.exempt"))
{ {
throw new Exception(_("muteExempt")); throw new Exception(_("muteExempt"));

View File

@ -32,7 +32,7 @@ public class Commandnear extends EssentialsCommand
{ {
try try
{ {
otherUser = getPlayer(server, args, 0); otherUser = getPlayer(server, user, args, 0);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -66,7 +66,7 @@ public class Commandnear extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User otherUser = getPlayer(server, args, 0); final User otherUser = getPlayer(server, args, 0, true, false);
long radius = 200; long radius = 200;
if (args.length > 1) if (args.length > 1)
{ {

View File

@ -33,7 +33,7 @@ public class Commandnick extends EssentialsCommand
{ {
throw new Exception(_("nickOthersPermission")); throw new Exception(_("nickOthersPermission"));
} }
setNickname(server, getPlayer(server, args, 0), formatNickname(user, args[1])); setNickname(server, getPlayer(server, user, args, 0), formatNickname(user, args[1]));
user.sendMessage(_("nickChanged")); user.sendMessage(_("nickChanged"));
return; return;
} }
@ -57,7 +57,7 @@ public class Commandnick extends EssentialsCommand
} }
else else
{ {
setNickname(server, getPlayer(server, args, 0), formatNickname(null, args[1])); setNickname(server, getPlayer(server, args, 0, true, false), formatNickname(null, args[1]));
} }
sender.sendMessage(_("nickChanged")); sender.sendMessage(_("nickChanged"));
} }

View File

@ -35,7 +35,7 @@ public class Commandspawnmob extends EssentialsCommand
if (args.length >= 3) if (args.length >= 3)
{ {
final User target = getPlayer(ess.getServer(), args, 2); final User target = getPlayer(ess.getServer(), user, args, 2);
SpawnMob.spawnmob(ess, server, user, target, mobData, mobCount); SpawnMob.spawnmob(ess, server, user, target, mobData, mobCount);
return; return;
} }
@ -55,7 +55,7 @@ public class Commandspawnmob extends EssentialsCommand
String[] mobData = SpawnMob.mobData(args[0]); String[] mobData = SpawnMob.mobData(args[0]);
int mobCount = Integer.parseInt(args[1]); int mobCount = Integer.parseInt(args[1]);
final User target = getPlayer(ess.getServer(), args, 2); final User target = getPlayer(ess.getServer(), args, 2, true, false);
SpawnMob.spawnmob(ess, server, sender, target, mobData, mobCount); SpawnMob.spawnmob(ess, server, sender, target, mobData, mobCount);
} }
} }

View File

@ -27,7 +27,7 @@ public class Commandsudo extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User user = getPlayer(server, args, 0, false); final User user = getPlayer(server, args, 0);
if(args[1].toLowerCase(Locale.ENGLISH).startsWith("c:")) if(args[1].toLowerCase(Locale.ENGLISH).startsWith("c:"))
{ {
if (user.isAuthorized("essentials.sudo.exempt") && sender instanceof Player) if (user.isAuthorized("essentials.sudo.exempt") && sender instanceof Player)

View File

@ -24,7 +24,7 @@ public class Commandtempban extends EssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User user = getPlayer(server, args, 0, true); final User user = getPlayer(server, args, 0, true, true);
if (!user.isOnline()) if (!user.isOnline())
{ {
if (sender instanceof Player if (sender instanceof Player

View File

@ -23,7 +23,7 @@ public class Commandtogglejail extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
final User player = getPlayer(server, args, 0, true); final User player = getPlayer(server, args, 0, true, true);
if (args.length >= 2 && !player.isJailed()) if (args.length >= 2 && !player.isJailed())
{ {

View File

@ -22,8 +22,8 @@ public class Commandtpo extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
case 1: case 1:
final User player = getPlayer(server, args, 0, true); final User player = getPlayer(server, args, 0, true, false);
if (!player.isOnline() || (player.isHidden() && !user.isAuthorized("essentials.teleport.hidden"))) if (player.isHidden() && !user.isAuthorized("essentials.teleport.hidden"))
{ {
throw new NoSuchFieldException(_("playerNotFound")); throw new NoSuchFieldException(_("playerNotFound"));
} }
@ -42,11 +42,10 @@ public class Commandtpo extends EssentialsCommand
throw new Exception(_("noPerm", "essentials.tp.others")); throw new Exception(_("noPerm", "essentials.tp.others"));
} }
user.sendMessage(_("teleporting")); user.sendMessage(_("teleporting"));
final User target = getPlayer(server, args, 0, true); final User target = getPlayer(server, args, 0, true, false);
final User toPlayer = getPlayer(server, args, 1, true); final User toPlayer = getPlayer(server, args, 1, true, false);
if (!target.isOnline() || !toPlayer.isOnline() if ((target.isHidden() || toPlayer.isHidden()) && !user.isAuthorized("essentials.teleport.hidden"))
|| ((target.isHidden() || toPlayer.isHidden()) && !user.isAuthorized("essentials.teleport.hidden")))
{ {
throw new NoSuchFieldException(_("playerNotFound")); throw new NoSuchFieldException(_("playerNotFound"));
} }

View File

@ -22,13 +22,7 @@ public class Commandtpohere extends EssentialsCommand
} }
//Just basically the old tphere command //Just basically the old tphere command
final User player = getPlayer(server, args, 0, true); final User player = getPlayer(server, args, 0, true, false);
// Check if user is offline
if (!player.isOnline())
{
throw new NoSuchFieldException(_("playerNotFound"));
}
if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions() if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
&& !user.isAuthorized("essentials.worlds." + user.getWorld().getName())) && !user.isAuthorized("essentials.worlds." + user.getWorld().getName()))

View File

@ -55,7 +55,7 @@ public class Commandtppos extends EssentialsCommand
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
User user = getPlayer(server, args, 0); User user = getPlayer(server, args, 0, true, false);
final double x = args[1].startsWith("~") ? user.getLocation().getX() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]); final double x = args[1].startsWith("~") ? user.getLocation().getX() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]);
final double y = args[2].startsWith("~") ? user.getLocation().getY() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]); final double y = args[2].startsWith("~") ? user.getLocation().getY() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]);
final double z = args[3].startsWith("~") ? user.getLocation().getZ() + Integer.parseInt(args[3].substring(1)) : Integer.parseInt(args[3]); final double z = args[3].startsWith("~") ? user.getLocation().getZ() + Integer.parseInt(args[3].substring(1)) : Integer.parseInt(args[3]);

View File

@ -27,7 +27,7 @@ public class Commandunban extends EssentialsCommand
String name; String name;
try try
{ {
final User user = getPlayer(server, args, 0, true); final User user = getPlayer(server, args, 0, true, true);
name = user.getName(); name = user.getName();
user.setBanned(false); user.setBanned(false);
user.setBanTimeout(0); user.setBanTimeout(0);

View File

@ -31,7 +31,7 @@ public class Commandunbanip extends EssentialsCommand
} }
else else
{ {
final User user = getPlayer(server, args, 0, true); final User user = getPlayer(server, args, 0, true, true);
ipAddress = user.getLastLoginAddress(); ipAddress = user.getLastLoginAddress();
if (ipAddress.isEmpty()) if (ipAddress.isEmpty())
{ {

View File

@ -28,7 +28,7 @@ public class Commandunlimited extends EssentialsCommand
if (args.length > 1 && user.isAuthorized("essentials.unlimited.others")) if (args.length > 1 && user.isAuthorized("essentials.unlimited.others"))
{ {
target = getPlayer(server, args, 1); target = getPlayer(server, user, args, 1);
} }
if (args[0].equalsIgnoreCase("list")) if (args[0].equalsIgnoreCase("list"))

View File

@ -41,7 +41,7 @@ public class Commandwarp extends EssentialsCommand
User otherUser = null; User otherUser = null;
if (args.length == 2 && (user.isAuthorized("essentials.warp.otherplayers") || user.isAuthorized("essentials.warp.others"))) if (args.length == 2 && (user.isAuthorized("essentials.warp.otherplayers") || user.isAuthorized("essentials.warp.others")))
{ {
otherUser = getPlayer(server, args, 1); otherUser = getPlayer(server, args, 1, user.isAuthorized("essentials.teleport.hidden"), false);
warpUser(user, otherUser, args[0]); warpUser(user, otherUser, args[0]);
throw new NoChargeException(); throw new NoChargeException();
} }
@ -58,7 +58,7 @@ public class Commandwarp extends EssentialsCommand
warpList(sender, args); warpList(sender, args);
throw new NoChargeException(); throw new NoChargeException();
} }
User otherUser = getPlayer(server, args, 1); User otherUser = getPlayer(server, args, 1, true, false);
otherUser.getTeleport().warp(args[0], null, TeleportCause.COMMAND); otherUser.getTeleport().warp(args[0], null, TeleportCause.COMMAND);
throw new NoChargeException(); throw new NoChargeException();

View File

@ -45,10 +45,15 @@ public abstract class EssentialsCommand implements IEssentialsCommand
protected User getPlayer(final Server server, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException protected User getPlayer(final Server server, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
{ {
return getPlayer(server, args, pos, false); return getPlayer(server, args, pos, false, false);
} }
protected User getPlayer(final Server server, final String[] args, final int pos, final boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException protected User getPlayer(final Server server, final User user, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
{
return getPlayer(server, args, pos, user.isAuthorized("essentials.vanish.interact"), false);
}
protected User getPlayer(final Server server, final String[] args, final int pos, boolean getHidden, final boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException
{ {
if (args.length <= pos) if (args.length <= pos)
{ {
@ -61,7 +66,11 @@ public abstract class EssentialsCommand implements IEssentialsCommand
final User user = ess.getUser(args[pos]); final User user = ess.getUser(args[pos]);
if (user != null) if (user != null)
{ {
if (!getOffline && (!user.isOnline() || user.isHidden())) if (!getOffline && !user.isOnline())
{
throw new PlayerNotFoundException();
}
if (!getHidden && user.isHidden())
{ {
throw new PlayerNotFoundException(); throw new PlayerNotFoundException();
} }
@ -74,13 +83,13 @@ public abstract class EssentialsCommand implements IEssentialsCommand
for (Player player : matches) for (Player player : matches)
{ {
final User userMatch = ess.getUser(player); final User userMatch = ess.getUser(player);
if (userMatch.getDisplayName().startsWith(args[pos]) && (getOffline || !userMatch.isHidden())) if (userMatch.getDisplayName().startsWith(args[pos]) && (getHidden || !userMatch.isHidden()))
{ {
return userMatch; return userMatch;
} }
} }
final User userMatch = ess.getUser(matches.get(0)); final User userMatch = ess.getUser(matches.get(0));
if (getOffline || !userMatch.isHidden()) if (getHidden || !userMatch.isHidden())
{ {
return userMatch; return userMatch;
} }