1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-15 19:14:18 +02:00

Restore teleporting to middle of block, when flying and unsafe is enabled.

This commit is contained in:
KHobbits
2014-02-02 16:43:31 +00:00
parent b6cd83acc8
commit fa467fc221
2 changed files with 13 additions and 3 deletions

View File

@@ -122,7 +122,7 @@ public class Teleport implements net.ess3.api.ITeleport
{ {
teleportee.getBase().leaveVehicle(); teleportee.getBase().leaveVehicle();
} }
teleportee.getBase().teleport(loc); teleportee.getBase().teleport(LocationUtil.getRoundedDestination(loc));
} }
} }

View File

@@ -249,6 +249,16 @@ public class LocationUtil
return false; 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 public static Location getSafeDestination(final IUser user, final Location loc) throws Exception
{ {
if (loc.getWorld().equals(user.getBase().getWorld()) if (loc.getWorld().equals(user.getBase().getWorld())
@@ -259,7 +269,7 @@ public class LocationUtil
{ {
user.getBase().setFlying(true); user.getBase().setFlying(true);
} }
return loc; return getRoundedDestination(loc);
} }
return getSafeDestination(loc); return getSafeDestination(loc);
} }