mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-04-26 16:39:45 +00:00
Improve hidden player matching.
Replace essentials.teleport.hidden with essentials.vanish.interact Fix perm checks in tpall and tpaall
This commit is contained in:
parent
d48c342e37
commit
66911bb0a9
18 changed files with 50 additions and 61 deletions
|
@ -27,7 +27,7 @@ public class Commandburn extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException("You need to specify a player to burn.");
|
throw new NotEnoughArgumentsException("You need to specify a player to burn.");
|
||||||
}
|
}
|
||||||
|
|
||||||
User user = getPlayer(server, args, 0);
|
User user = getPlayer(server, sender, args, 0);
|
||||||
user.setFireTicks(Integer.parseInt(args[1]) * 20);
|
user.setFireTicks(Integer.parseInt(args[1]) * 20);
|
||||||
sender.sendMessage(_("burnMsg", user.getDisplayName(), Integer.parseInt(args[1])));
|
sender.sendMessage(_("burnMsg", user.getDisplayName(), Integer.parseInt(args[1])));
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,12 +138,13 @@ public class Commandexp extends EssentialsCommand
|
||||||
|
|
||||||
private void expMatch(final Server server, final CommandSender sender, final String match, String amount, final boolean give) throws NotEnoughArgumentsException
|
private void expMatch(final Server server, final CommandSender sender, final String match, String amount, final boolean give) throws NotEnoughArgumentsException
|
||||||
{
|
{
|
||||||
|
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
||||||
boolean foundUser = false;
|
boolean foundUser = false;
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(match);
|
final List<Player> matchedPlayers = server.matchPlayer(match);
|
||||||
for (Player matchPlayer : matchedPlayers)
|
for (Player matchPlayer : matchedPlayers)
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(matchPlayer);
|
final User player = ess.getUser(matchPlayer);
|
||||||
if (player.isHidden())
|
if (skipHidden && player.isHidden())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class Commandgive extends EssentialsCommand
|
||||||
throw new Exception(_("cantSpawnItem", itemname));
|
throw new Exception(_("cantSpawnItem", itemname));
|
||||||
}
|
}
|
||||||
|
|
||||||
final User giveTo = getPlayer(server, args, 0);
|
final User giveTo = getPlayer(server, sender, args, 0);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -87,11 +87,12 @@ public class Commandnear extends EssentialsCommand
|
||||||
final World world = loc.getWorld();
|
final World world = loc.getWorld();
|
||||||
final StringBuilder output = new StringBuilder();
|
final StringBuilder output = new StringBuilder();
|
||||||
final long radiusSquared = radius * radius;
|
final long radiusSquared = radius * radius;
|
||||||
|
boolean showHidden = user.isAuthorized("essentials.vanish.interact");
|
||||||
|
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(onlinePlayer);
|
final User player = ess.getUser(onlinePlayer);
|
||||||
if (!player.equals(user) && !player.isHidden())
|
if (!player.equals(user) && (!player.isHidden() || showHidden))
|
||||||
{
|
{
|
||||||
final Location playerLoc = player.getLocation();
|
final Location playerLoc = player.getLocation();
|
||||||
if (playerLoc.getWorld() != world)
|
if (playerLoc.getWorld() != world)
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class Commandnuke extends EssentialsCommand
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
for (String arg : args)
|
for (String arg : args)
|
||||||
{
|
{
|
||||||
targets.add(getPlayer(server, args, pos));
|
targets.add(getPlayer(server, sender, args, pos));
|
||||||
pos++;
|
pos++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,11 +24,12 @@ public class Commandrealname extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
final String whois = args[0].toLowerCase(Locale.ENGLISH);
|
final String whois = args[0].toLowerCase(Locale.ENGLISH);
|
||||||
|
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
||||||
boolean foundUser = false;
|
boolean foundUser = false;
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final User u = ess.getUser(onlinePlayer);
|
final User u = ess.getUser(onlinePlayer);
|
||||||
if (u.isHidden())
|
if (skipHidden && u.isHidden())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class Commandseen extends EssentialsCommand
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
User user = getPlayer(server, args, 0);
|
User user = getPlayer(server, sender, args, 0);
|
||||||
seenOnline(server, sender, user, showBan, extra);
|
seenOnline(server, sender, user, showBan, extra);
|
||||||
}
|
}
|
||||||
catch (NoSuchFieldException e)
|
catch (NoSuchFieldException e)
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class Commandtp extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
final User player = getPlayer(server, args, 0);
|
final User player = getPlayer(server, user, args, 0);
|
||||||
if (!player.isTeleportEnabled())
|
if (!player.isTeleportEnabled())
|
||||||
{
|
{
|
||||||
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
||||||
|
@ -46,7 +46,7 @@ public class Commandtp extends EssentialsCommand
|
||||||
{
|
{
|
||||||
throw new Exception(_("noPerm", "essentials.tp.others"));
|
throw new Exception(_("noPerm", "essentials.tp.others"));
|
||||||
}
|
}
|
||||||
final User target2 = getPlayer(server, args, 0);
|
final User target2 = getPlayer(server, user, args, 0);
|
||||||
final double x = args[1].startsWith("~") ? target2.getLocation().getX() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]);
|
final double x = args[1].startsWith("~") ? target2.getLocation().getX() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]);
|
||||||
final double y = args[2].startsWith("~") ? target2.getLocation().getY() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]);
|
final double y = args[2].startsWith("~") ? target2.getLocation().getY() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]);
|
||||||
final double z = args[3].startsWith("~") ? target2.getLocation().getZ() + Integer.parseInt(args[3].substring(1)) : Integer.parseInt(args[3]);
|
final double z = args[3].startsWith("~") ? target2.getLocation().getZ() + Integer.parseInt(args[3].substring(1)) : Integer.parseInt(args[3]);
|
||||||
|
@ -69,8 +69,8 @@ public class Commandtp extends EssentialsCommand
|
||||||
{
|
{
|
||||||
throw new Exception(_("noPerm", "essentials.tp.others"));
|
throw new Exception(_("noPerm", "essentials.tp.others"));
|
||||||
}
|
}
|
||||||
final User target = getPlayer(server, args, 0);
|
final User target = getPlayer(server, user, args, 0);
|
||||||
final User toPlayer = getPlayer(server, args, 1);
|
final User toPlayer = getPlayer(server, user, args, 1);
|
||||||
if (!target.isTeleportEnabled())
|
if (!target.isTeleportEnabled())
|
||||||
{
|
{
|
||||||
throw new Exception(_("teleportDisabled", target.getDisplayName()));
|
throw new Exception(_("teleportDisabled", target.getDisplayName()));
|
||||||
|
@ -99,10 +99,10 @@ public class Commandtp 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 (args.length == 2)
|
if (args.length == 2)
|
||||||
{
|
{
|
||||||
final User toPlayer = getPlayer(server, args, 1);
|
final User toPlayer = getPlayer(server, args, 1, true, false);
|
||||||
target.getTeleport().now(toPlayer, false, TeleportCause.COMMAND);
|
target.getTeleport().now(toPlayer, false, TeleportCause.COMMAND);
|
||||||
target.sendMessage(_("teleportAtoB", Console.NAME, toPlayer.getDisplayName()));
|
target.sendMessage(_("teleportAtoB", Console.NAME, toPlayer.getDisplayName()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class Commandtpa extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
User player = getPlayer(server, args, 0);
|
User player = getPlayer(server, user, args, 0);
|
||||||
if (!player.isTeleportEnabled())
|
if (!player.isTeleportEnabled())
|
||||||
{
|
{
|
||||||
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
||||||
|
|
|
@ -27,17 +27,17 @@ public class Commandtpaall extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
final User player = getPlayer(server, args, 0);
|
final User target = getPlayer(server, sender, args, 0);
|
||||||
teleportAAllPlayers(server, sender, player);
|
teleportAAllPlayers(server, sender, target);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void teleportAAllPlayers(final Server server, final CommandSender sender, final User user)
|
private void teleportAAllPlayers(final Server server, final CommandSender sender, final User target)
|
||||||
{
|
{
|
||||||
sender.sendMessage(_("teleportAAll"));
|
sender.sendMessage(_("teleportAAll"));
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(onlinePlayer);
|
final User player = ess.getUser(onlinePlayer);
|
||||||
if (user == player)
|
if (target == player)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -45,15 +45,16 @@ public class Commandtpaall extends EssentialsCommand
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
if (target.equals(sender)
|
||||||
&& !user.isAuthorized("essentials.worlds." + user.getWorld().getName()))
|
&& target.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
||||||
|
&& !target.isAuthorized("essentials.worlds." + target.getWorld().getName()))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
player.requestTeleport(user, true);
|
player.requestTeleport(target, true);
|
||||||
player.sendMessage(_("teleportHereRequest", user.getDisplayName()));
|
player.sendMessage(_("teleportHereRequest", target.getDisplayName()));
|
||||||
player.sendMessage(_("typeTpaccept"));
|
player.sendMessage(_("typeTpaccept"));
|
||||||
if (ess.getSettings().getTpaAcceptCancellation() != 0)
|
if (ess.getSettings().getTpaAcceptCancellation() != 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class Commandtpahere extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
final User player = getPlayer(server, args, 0);
|
final User player = getPlayer(server, user, args, 0);
|
||||||
if (!player.isTeleportEnabled())
|
if (!player.isTeleportEnabled())
|
||||||
{
|
{
|
||||||
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
||||||
|
|
|
@ -28,28 +28,29 @@ public class Commandtpall extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
|
|
||||||
final User player = getPlayer(server, args, 0);
|
final User target = getPlayer(server, sender, args, 0);
|
||||||
teleportAllPlayers(server, sender, player);
|
teleportAllPlayers(server, sender, target);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void teleportAllPlayers(Server server, CommandSender sender, User user)
|
private void teleportAllPlayers(Server server, CommandSender sender, User target)
|
||||||
{
|
{
|
||||||
sender.sendMessage(_("teleportAll"));
|
sender.sendMessage(_("teleportAll"));
|
||||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final User player = ess.getUser(onlinePlayer);
|
final User player = ess.getUser(onlinePlayer);
|
||||||
if (user == player)
|
if (target == player)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
if (target.equals(sender)
|
||||||
&& !user.isAuthorized("essentials.worlds." + user.getWorld().getName()))
|
&& target.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
||||||
|
&& !target.isAuthorized("essentials.worlds." + target.getWorld().getName()))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
player.getTeleport().now(user, false, TeleportCause.COMMAND);
|
player.getTeleport().now(target, false, TeleportCause.COMMAND);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,7 +17,7 @@ public class Commandtphere extends EssentialsCommand
|
||||||
@Override
|
@Override
|
||||||
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
public void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
|
||||||
{
|
{
|
||||||
final User player = getPlayer(server, args, 0);
|
final User player = getPlayer(server, user, args, 0);
|
||||||
if (!player.isTeleportEnabled())
|
if (!player.isTeleportEnabled())
|
||||||
{
|
{
|
||||||
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
throw new Exception(_("teleportDisabled", player.getDisplayName()));
|
||||||
|
|
|
@ -22,11 +22,7 @@ public class Commandtpo extends EssentialsCommand
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
final User player = getPlayer(server, args, 0, true, false);
|
final User player = getPlayer(server, user, args, 0);
|
||||||
if (player.isHidden() && !user.isAuthorized("essentials.teleport.hidden"))
|
|
||||||
{
|
|
||||||
throw new NoSuchFieldException(_("playerNotFound"));
|
|
||||||
}
|
|
||||||
if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
||||||
&& !user.isAuthorized("essentials.worlds." + player.getWorld().getName()))
|
&& !user.isAuthorized("essentials.worlds." + player.getWorld().getName()))
|
||||||
{
|
{
|
||||||
|
@ -42,13 +38,8 @@ 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, false);
|
final User target = getPlayer(server, user, args, 0);
|
||||||
final User toPlayer = getPlayer(server, args, 1, true, false);
|
final User toPlayer = getPlayer(server, user, args, 1);
|
||||||
|
|
||||||
if ((target.isHidden() || toPlayer.isHidden()) && !user.isAuthorized("essentials.teleport.hidden"))
|
|
||||||
{
|
|
||||||
throw new NoSuchFieldException(_("playerNotFound"));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (target.getWorld() != toPlayer.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
if (target.getWorld() != toPlayer.getWorld() && ess.getSettings().isWorldTeleportPermissions()
|
||||||
&& !user.isAuthorized("essentials.worlds." + toPlayer.getWorld().getName()))
|
&& !user.isAuthorized("essentials.worlds." + toPlayer.getWorld().getName()))
|
||||||
|
|
|
@ -22,7 +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, false);
|
final User player = getPlayer(server, user, args, 0);
|
||||||
|
|
||||||
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()))
|
||||||
|
@ -31,14 +31,8 @@ public class Commandtpohere extends EssentialsCommand
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify permission
|
// Verify permission
|
||||||
if (!player.isHidden() || user.isAuthorized("essentials.teleport.hidden"))
|
player.getTeleport().now(user, false, TeleportCause.COMMAND);
|
||||||
{
|
user.sendMessage(_("teleporting"));
|
||||||
player.getTeleport().now(user, false, TeleportCause.COMMAND);
|
|
||||||
user.sendMessage(_("teleporting"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new NoSuchFieldException(_("playerNotFound"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class Commandtptoggle extends EssentialsCommand
|
||||||
|
|
||||||
private void toggleOtherPlayers(final Server server, final CommandSender sender, final String[] args) throws NotEnoughArgumentsException
|
private void toggleOtherPlayers(final Server server, final CommandSender sender, final String[] args) throws NotEnoughArgumentsException
|
||||||
{
|
{
|
||||||
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.teleport.hidden");
|
boolean skipHidden = sender instanceof Player && !ess.getUser(sender).isAuthorized("essentials.vanish.interact");
|
||||||
boolean foundUser = false;
|
boolean foundUser = false;
|
||||||
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
final List<Player> matchedPlayers = server.matchPlayer(args[0]);
|
||||||
for (Player matchPlayer : matchedPlayers)
|
for (Player matchPlayer : matchedPlayers)
|
||||||
|
|
|
@ -42,7 +42,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, user.isAuthorized("essentials.teleport.hidden"), false);
|
otherUser = getPlayer(server, user, args, 1);
|
||||||
warpUser(user, otherUser, args[0]);
|
warpUser(user, otherUser, args[0]);
|
||||||
throw new NoChargeException();
|
throw new NoChargeException();
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,16 +43,15 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
protected User getPlayer(final Server server, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
|
|
||||||
{
|
|
||||||
return getPlayer(server, null, args, pos, false, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected User getPlayer(final Server server, final User user, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
|
protected User getPlayer(final Server server, final User user, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
|
||||||
{
|
{
|
||||||
return getPlayer(server, user, args, pos, user.isAuthorized("essentials.vanish.interact"), false);
|
return getPlayer(server, user, args, pos, user.isAuthorized("essentials.vanish.interact"), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected User getPlayer(final Server server, final CommandSender sender, final String[] args, final int pos) throws NoSuchFieldException, NotEnoughArgumentsException
|
||||||
|
{
|
||||||
|
return getPlayer(server, null, args, pos, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
protected User getPlayer(final Server server, final String[] args, final int pos, boolean getHidden, final boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException
|
protected User getPlayer(final Server server, final String[] args, final int pos, boolean getHidden, final boolean getOffline) throws NoSuchFieldException, NotEnoughArgumentsException
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue