From 7c372cd978ae2f15e877a983489f7e5e25c529c0 Mon Sep 17 00:00:00 2001 From: Necrodoom Date: Fri, 4 Jul 2014 17:11:27 +0300 Subject: [PATCH] Add support for vanilla /tp teleport syntax. --- .../earth2me/essentials/commands/Commandtp.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java index c352f217f..a4d94bcde 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandtp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandtp.java @@ -40,6 +40,22 @@ public class Commandtp extends EssentialsCommand charge.isAffordableFor(user); user.getTeleport().teleport(player.getBase(), charge, TeleportCause.COMMAND); throw new NoChargeException(); + case 3: + final double x2 = args[0].startsWith("~") ? user.getLocation().getX() + Integer.parseInt(args[0].substring(1)) : Integer.parseInt(args[0]); + final double y2 = args[1].startsWith("~") ? user.getLocation().getY() + Integer.parseInt(args[1].substring(1)) : Integer.parseInt(args[1]); + final double z2 = args[2].startsWith("~") ? user.getLocation().getZ() + Integer.parseInt(args[2].substring(1)) : Integer.parseInt(args[2]); + if (x2 > 30000000 || y2 > 30000000 || z2 > 30000000 || x2 < -30000000 || y2 < -30000000 || z2 < -30000000) + { + throw new NotEnoughArgumentsException(tl("teleportInvalidLocation")); + } + final Location loc2 = new Location(user.getWorld(), x2, y2, z2, user.getLocation().getYaw(), user.getLocation().getPitch()); + if (!user.isTeleportEnabled()) + { + throw new Exception(tl("teleportDisabled", user.getDisplayName())); + } + user.getTeleport().now(loc2, false, TeleportCause.COMMAND); + user.sendMessage(tl("teleporting", loc2.getWorld().getName(), loc2.getBlockX(), loc2.getBlockY(), loc2.getBlockZ())); + break; case 4: if (!user.isAuthorized("essentials.tp.others")) {