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"));
final User target = getPlayer(server, args, 0);
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()
&& !user.isAuthorized("essentials.world." + toPlayer.getWorld().getName()))
{

View File

@ -16,33 +16,49 @@ public class Commandtpo extends EssentialsCommand
@Override
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();
}
//Just basically the old tp command
final User player = getPlayer(server, args, 0, true);
// Check if user is offline
if (!player.isOnline())
{
throw new NoSuchFieldException(_("playerNotFound"));
}
// Verify permission
if (!player.isHidden() || user.isAuthorized("essentials.teleport.hidden"))
{
case 1:
final User player = getPlayer(server, args, 0, true);
if (!player.isOnline() || (player.isHidden() && !user.isAuthorized("essentials.teleport.hidden")))
{
throw new NoSuchFieldException(_("playerNotFound"));
}
if (user.getWorld() != player.getWorld() && ess.getSettings().isWorldTeleportPermissions()
&& !user.isAuthorized("essentials.world." + player.getWorld().getName()))
{
throw new Exception(_("noPerm", "essentials.world." + player.getWorld().getName()));
}
user.getTeleport().now(player, false, TeleportCause.COMMAND);
user.sendMessage(_("teleporting"));
}
else
{
throw new NoSuchFieldException(_("playerNotFound"));
user.getTeleport().now(player, false, TeleportCause.COMMAND);
default:
if (!user.isAuthorized("essentials.tp.others"))
{
throw new Exception(_("noPerm", "essentials.tp.others"));
}
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"));
}
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]
tpo:
description: Teleport override for tptoggle.
usage: /<command> <player>
usage: /<command> <player> [otherplayer]
aliases: [etpo]
tpohere:
description: Teleport here override for tptoggle.