diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java index 29335eac52..ee6b0a1ed6 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -179,6 +179,13 @@ public class PlayerConnection implements PacketPlayInListener { } public void a(PacketPlayInFlying packetplayinflying) { + // CraftBukkit start - Check for NaN + if (Double.isNaN(packetplayinflying.x) || Double.isNaN(packetplayinflying.y) || Double.isNaN(packetplayinflying.z) || Double.isNaN(packetplayinflying.stance)) { + c.warn(player.getName() + " was caught trying to crash the server with an invalid position."); + getPlayer().kickPlayer("Nope!"); + return; + } + // CraftBukkit end WorldServer worldserver = this.minecraftServer.getWorldServer(this.player.dimension); this.g = true; @@ -249,13 +256,6 @@ public class PlayerConnection implements PacketPlayInListener { } } - if (Double.isNaN(packetplayinflying.x) || Double.isNaN(packetplayinflying.y) || Double.isNaN(packetplayinflying.z) || Double.isNaN(packetplayinflying.stance)) { - player.teleport(player.getWorld().getSpawnLocation(), PlayerTeleportEvent.TeleportCause.UNKNOWN); - System.err.println(player.getName() + " was caught trying to crash the server with an invalid position."); - player.kickPlayer("Nope!"); - return; - } - if (this.checkMovement && !this.player.dead) { // CraftBukkit end double d1;