diff options
Diffstat (limited to 'Essentials/src/net/ess3/commands/Commandtpo.java')
-rw-r--r-- | Essentials/src/net/ess3/commands/Commandtpo.java | 61 |
1 files changed, 16 insertions, 45 deletions
diff --git a/Essentials/src/net/ess3/commands/Commandtpo.java b/Essentials/src/net/ess3/commands/Commandtpo.java index 7eba0262f..529fbd8f8 100644 --- a/Essentials/src/net/ess3/commands/Commandtpo.java +++ b/Essentials/src/net/ess3/commands/Commandtpo.java @@ -1,11 +1,8 @@ package net.ess3.commands; -import lombok.Cleanup; import static net.ess3.I18n._; -import net.ess3.api.ISettings; import net.ess3.api.IUser; import net.ess3.permissions.Permissions; -import net.ess3.permissions.WorldPermissions; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -14,54 +11,28 @@ public class Commandtpo extends EssentialsCommand @Override public void run(final IUser user, final String commandLabel, final String[] args) throws Exception { - @Cleanup - ISettings settings = ess.getSettings(); - switch (args.length) + if (args.length < 1) { - case 0: throw new NotEnoughArgumentsException(); + } - case 1: - final IUser player = getPlayer(args, 0, true); - if (!player.isOnline() || (player.isHidden() && !Permissions.TELEPORT_HIDDEN.isAuthorized(player))) - { - throw new NoSuchFieldException(_("playerNotFound")); - } - settings.acquireReadLock(); - if (user.getWorld() != player.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(player.getWorld().getName()).isAuthorized(player)) - { - throw new Exception(_("noPerm", "essentials.world." + player.getWorld().getName())); - } + //Just basically the old tp command + final IUser player = getPlayer(args, 0, true); + // Check if user is offline + if (!player.isOnline()) + { + throw new NoSuchFieldException(_("playerNotFound")); + } - user.sendMessage(_("teleporting")); + // Verify permission + if (!player.isHidden() || Permissions.TELEPORT_HIDDEN.isAuthorized(user)) + { user.getTeleport().now(player, false, TeleportCause.COMMAND); - break; - - default: - if (!Permissions.TELEPORT_OTHERS.isAuthorized(user)) - { - throw new Exception(_("noPerm", "essentials.tp.others")); - } user.sendMessage(_("teleporting")); - final IUser target = getPlayer(args, 0, true); - final IUser toPlayer = getPlayer(args, 1, true); - - if (!target.isOnline() || !toPlayer.isOnline() - || ((target.isHidden() || toPlayer.isHidden()) && !Permissions.TELEPORT_HIDDEN.isAuthorized(user))) - { - throw new NoSuchFieldException(_("playerNotFound")); - } - settings.acquireReadLock(); - if (target.getWorld() != toPlayer.getWorld() && settings.getData().getGeneral().isWorldTeleportPermissions() - && !WorldPermissions.getPermission(toPlayer.getWorld().getName()).isAuthorized(user)) - { - throw new Exception(_("noPerm", "essentials.world." + toPlayer.getWorld().getName())); - } - - target.getTeleport().now(toPlayer, false, TeleportCause.COMMAND); - target.sendMessage(_("teleportAtoB", user.getDisplayName(), toPlayer.getDisplayName())); - break; + } + else + { + throw new NoSuchFieldException(_("playerNotFound")); } } } |