diff --git a/Essentials/src/com/earth2me/essentials/Teleport.java b/Essentials/src/com/earth2me/essentials/Teleport.java index 4d258156a..45e9a34e3 100644 --- a/Essentials/src/com/earth2me/essentials/Teleport.java +++ b/Essentials/src/com/earth2me/essentials/Teleport.java @@ -122,7 +122,7 @@ public class Teleport implements net.ess3.api.ITeleport { teleportee.getBase().leaveVehicle(); } - teleportee.getBase().teleport(loc); + teleportee.getBase().teleport(LocationUtil.getRoundedDestination(loc)); } } diff --git a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java index 66a2ef581..b142ac3a9 100644 --- a/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/LocationUtil.java @@ -248,6 +248,16 @@ public class LocationUtil } return false; } + + // Not needed if using getSafeDestination(loc) + public static Location getRoundedDestination(final Location loc) + { + final World world = loc.getWorld(); + int x = loc.getBlockX(); + int y = (int)Math.round(loc.getY()); + int z = loc.getBlockZ(); + return new Location(world, x + 0.5, y, z + 0.5, loc.getYaw(), loc.getPitch()); + } public static Location getSafeDestination(final IUser user, final Location loc) throws Exception { @@ -259,11 +269,11 @@ public class LocationUtil { user.getBase().setFlying(true); } - return loc; + return getRoundedDestination(loc); } return getSafeDestination(loc); } - + public static Location getSafeDestination(final Location loc) throws Exception { if (loc == null || loc.getWorld() == null)