diff options
author | EvilSeph <evilseph@unaligned.org> | 2011-05-04 22:16:26 -0400 |
---|---|---|
committer | EvilSeph <evilseph@unaligned.org> | 2011-05-04 22:16:26 -0400 |
commit | 54e2254904153ad5fbc071468560c2305e9128a8 (patch) | |
tree | 0aab6b244c629f869f647926f3ac69c3cded2166 /src/main/java/org/bukkit | |
parent | ef7e3689b35045b4bfeb77071e6ad32bdde5e448 (diff) | |
download | craftbukkit-54e2254904153ad5fbc071468560c2305e9128a8.tar craftbukkit-54e2254904153ad5fbc071468560c2305e9128a8.tar.gz craftbukkit-54e2254904153ad5fbc071468560c2305e9128a8.tar.lz craftbukkit-54e2254904153ad5fbc071468560c2305e9128a8.tar.xz craftbukkit-54e2254904153ad5fbc071468560c2305e9128a8.zip |
Made teleporting between worlds 'smoother'. Thanks Raphfrk!
Diffstat (limited to 'src/main/java/org/bukkit')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 9d1c9f5a..55d80dde 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -12,6 +12,7 @@ import net.minecraft.server.Packet54PlayNoteBlock; import net.minecraft.server.Packet6SpawnPosition; import net.minecraft.server.ServerConfigurationManager; import net.minecraft.server.WorldServer; +import net.minecraft.server.ChunkCoordIntPair; import org.bukkit.Achievement; import org.bukkit.Location; import org.bukkit.Material; @@ -194,6 +195,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (teleportSuccess) { manager.server.tracker.trackPlayer(entity); manager.server.tracker.untrackEntity(entity); + int cx = (int) location.getBlockX() >> 4; + int cz = (int) location.getBlockZ() >> 4; + for (int x = -10 ; x <= 10 ; x++ ) { + for (int z = -10 ; z <= 10 ; z++ ) { + ChunkCoordIntPair chunkPosition = new ChunkCoordIntPair(cx + x, cz + z); + if (entity.g.remove(chunkPosition)) { + newEntity.g.add(chunkPosition); + } + } + } oldWorld.manager.removePlayer(entity); manager.players.remove(entity); oldWorld.removeEntity(entity); |