summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTravis Watkins <amaranth@ubuntu.com>2012-11-17 10:19:41 -0600
committerTravis Watkins <amaranth@ubuntu.com>2012-11-17 15:00:14 -0600
commit2d832bf14886a751cc535ec4a7d247b73e685d41 (patch)
tree96289c42afdfa4b7c135a4c2613857bee8504d20
parentbd0868ae1e34d4d829dc80984a3b640048ac7a5f (diff)
downloadcraftbukkit-2d832bf14886a751cc535ec4a7d247b73e685d41.tar
craftbukkit-2d832bf14886a751cc535ec4a7d247b73e685d41.tar.gz
craftbukkit-2d832bf14886a751cc535ec4a7d247b73e685d41.tar.lz
craftbukkit-2d832bf14886a751cc535ec4a7d247b73e685d41.tar.xz
craftbukkit-2d832bf14886a751cc535ec4a7d247b73e685d41.zip
Don't kick player when they travel too far. Fixes BUKKIT-2968
If a player travels past 32,000,000 blocks on the X or Z coordinates they will be kicked for having an illegal position. On kick their player data is saved which includes their (illegal) position. This means on join they are immediately kicked again for the same reason and are stuck. Instead of kicking at all in this case just teleport the player back to their previous position just like the moved wrongly check does.
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index a6e64031..004ef08a 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -336,7 +336,8 @@ public class NetServerHandler extends NetHandler {
}
if (Math.abs(packet10flying.x) > 3.2E7D || Math.abs(packet10flying.z) > 3.2E7D) {
- this.disconnect("Illegal position");
+ // CraftBukkit - teleport to previous position instead of kicking, players get stuck
+ this.a(this.y, this.z, this.q, this.player.yaw, this.player.pitch);
return;
}
}