Update tp to check if target player has tptoggle disabled.

Update tpo to allow player to player tp.
This commit is contained in:
KHobbits 2012-03-25 23:31:02 +01:00
parent 47cf1289d7
commit 2cc96e995b
3 changed files with 43 additions and 19 deletions

View file

@ -49,6 +49,14 @@ public class Commandtp extends EssentialsCommand
user.sendMessage(_("teleporting")); user.sendMessage(_("teleporting"));
final User target = getPlayer(server, args, 0); final User target = getPlayer(server, args, 0);
final User toPlayer = getPlayer(server, args, 1); final User toPlayer = getPlayer(server, args, 1);
if (!target.isTeleportEnabled())
{
throw new Exception(_("teleportDisabled", target.getDisplayName()));
}
if (!toPlayer.isTeleportEnabled())
{
throw new Exception(_("teleportDisabled", toPlayer.getDisplayName()));
}
if (target.getWorld() != toPlayer.getWorld() && ess.getSettings().isWorldTeleportPermissions() if (target.getWorld() != toPlayer.getWorld() && ess.getSettings().isWorldTeleportPermissions()
&& !user.isAuthorized("essentials.world." + toPlayer.getWorld().getName())) && !user.isAuthorized("essentials.world." + toPlayer.getWorld().getName()))
{ {

View file

@ -16,33 +16,49 @@ public class Commandtpo 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
{ {
if (args.length < 1) switch (args.length)
{ {
case 0:
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
}
//Just basically the old tp command case 1:
final User player = getPlayer(server, args, 0, true); final User player = getPlayer(server, args, 0, true);
// Check if user is offline if (!player.isOnline() || (player.isHidden() && !user.isAuthorized("essentials.teleport.hidden")))
if (!player.isOnline())
{ {
throw new NoSuchFieldException(_("playerNotFound")); throw new NoSuchFieldException(_("playerNotFound"));
} }
// Verify permission
if (!player.isHidden() || user.isAuthorized("essentials.teleport.hidden"))
{
if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions() if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
&& !user.isAuthorized("essentials.world." + player.getWorld().getName())) && !user.isAuthorized("essentials.world." + player.getWorld().getName()))
{ {
throw new Exception(_("noPerm", "essentials.world." + player.getWorld().getName())); throw new Exception(_("noPerm", "essentials.world." + player.getWorld().getName()));
} }
user.getTeleport().now(player, false, TeleportCause.COMMAND);
user.sendMessage(_("teleporting")); user.sendMessage(_("teleporting"));
user.getTeleport().now(player, false, TeleportCause.COMMAND);
default:
if (!user.isAuthorized("essentials.tp.others"))
{
throw new Exception(_("noPerm", "essentials.tp.others"));
} }
else user.sendMessage(_("teleporting"));
final User target = getPlayer(server, args, 0, true);
final User toPlayer = getPlayer(server, args, 1, true);
if (!target.isOnline() || !toPlayer.isOnline()
|| ((target.isHidden() || toPlayer.isHidden()) && !user.isAuthorized("essentials.teleport.hidden")))
{ {
throw new NoSuchFieldException(_("playerNotFound")); throw new NoSuchFieldException(_("playerNotFound"));
} }
if (target.getWorld() != toPlayer.getWorld() && ess.getSettings().isWorldTeleportPermissions()
&& !user.isAuthorized("essentials.world." + toPlayer.getWorld().getName()))
{
throw new Exception(_("noPerm", "essentials.world." + toPlayer.getWorld().getName()));
}
target.getTeleport().now(toPlayer, false, TeleportCause.COMMAND);
target.sendMessage(_("teleportAtoB", user.getDisplayName(), toPlayer.getDisplayName()));
break;
}
} }
} }

View file

@ -375,7 +375,7 @@ commands:
aliases: [s,etphere] aliases: [s,etphere]
tpo: tpo:
description: Teleport override for tptoggle. description: Teleport override for tptoggle.
usage: /<command> <player> usage: /<command> <player> [otherplayer]
aliases: [etpo] aliases: [etpo]
tpohere: tpohere:
description: Teleport here override for tptoggle. description: Teleport here override for tptoggle.