diff options
author | Travis Watkins <amaranth@ubuntu.com> | 2012-11-17 10:19:41 -0600 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2012-11-17 15:00:14 -0600 |
commit | 2d832bf14886a751cc535ec4a7d247b73e685d41 (patch) | |
tree | 96289c42afdfa4b7c135a4c2613857bee8504d20 | |
parent | bd0868ae1e34d4d829dc80984a3b640048ac7a5f (diff) | |
download | craftbukkit-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.java | 3 |
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; } } |