summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/PlayerManager.java
diff options
context:
space:
mode:
authorEvilSeph <evilseph@unaligned.org>2011-06-08 17:00:30 -0400
committerEvilSeph <evilseph@unaligned.org>2011-06-08 17:00:30 -0400
commitb5d1619e75a7d535bc33a9cc6401c64befe608dc (patch)
tree21a2a1ef7a6ec47356fb4386f5b4e5d922ecd57f /src/main/java/net/minecraft/server/PlayerManager.java
parent5296f97cde8e17d37da635c0eb3363d788d85430 (diff)
downloadcraftbukkit-b5d1619e75a7d535bc33a9cc6401c64befe608dc.tar
craftbukkit-b5d1619e75a7d535bc33a9cc6401c64befe608dc.tar.gz
craftbukkit-b5d1619e75a7d535bc33a9cc6401c64befe608dc.tar.lz
craftbukkit-b5d1619e75a7d535bc33a9cc6401c64befe608dc.tar.xz
craftbukkit-b5d1619e75a7d535bc33a9cc6401c64befe608dc.zip
More teleport changes. Thanks Zeerix!
Diffstat (limited to 'src/main/java/net/minecraft/server/PlayerManager.java')
-rw-r--r--src/main/java/net/minecraft/server/PlayerManager.java26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/main/java/net/minecraft/server/PlayerManager.java b/src/main/java/net/minecraft/server/PlayerManager.java
index fe171222..ff0aac45 100644
--- a/src/main/java/net/minecraft/server/PlayerManager.java
+++ b/src/main/java/net/minecraft/server/PlayerManager.java
@@ -3,6 +3,11 @@ package net.minecraft.server;
import java.util.ArrayList;
import java.util.List;
+// CraftBukkit start
+import java.util.Collections;
+import java.util.Comparator;
+// CraftBukkit end
+
public class PlayerManager {
public List a = new ArrayList();
@@ -134,14 +139,6 @@ public class PlayerManager {
int i1 = i - k;
int j1 = j - l;
- // CraftBukkit start
- if (i1 > this.f || i1 < -this.f || j1 > this.f || j1 < -this.f) {
- this.removePlayer(entityplayer);
- this.addPlayer(entityplayer);
- return;
- }
- // CraftBukkit end
-
if (i1 != 0 || j1 != 0) {
for (int k1 = i - this.f; k1 <= i + this.f; ++k1) {
for (int l1 = j - this.f; l1 <= j + this.f; ++l1) {
@@ -161,6 +158,19 @@ public class PlayerManager {
entityplayer.d = entityplayer.locX;
entityplayer.e = entityplayer.locZ;
+
+ // CraftBukkit start - send nearest chunks first
+ if (i1 > 1 || i1 < -1 || j1 > 1 || j1 < -1) {
+ final int x = i;
+ final int z = j;
+ List<ChunkCoordIntPair> chunksToSend = entityplayer.f;
+ Collections.sort(chunksToSend, new Comparator<ChunkCoordIntPair>() {
+ public int compare(ChunkCoordIntPair a, ChunkCoordIntPair b) {
+ return Math.max(Math.abs(a.x-x), Math.abs(a.z-z)) - Math.max(Math.abs(b.x-x), Math.abs(b.z-z));
+ }
+ });
+ }
+ // CraftBukkit end
}
}
}