summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/ChunkProviderServer.java11
-rw-r--r--src/main/java/net/minecraft/server/LongHashtable.java21
-rw-r--r--src/main/java/net/minecraft/server/World.java6
3 files changed, 30 insertions, 8 deletions
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index ae85702e..4ff1ffa6 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -106,7 +106,16 @@ public class ChunkProviderServer implements IChunkProvider {
public Chunk b(int i, int j) {
Chunk chunk = (Chunk) this.e.get(i, j); // CraftBukkit
- return chunk == null ? (this.g.r ? this.d(i, j) : this.b) : chunk;
+ chunk = chunk == null ? (this.g.r ? this.d(i, j) : this.b) : chunk;
+ if(chunk == this.b) return chunk;
+ if(i != chunk.j || j != chunk.k) {
+ MinecraftServer.a.info("Chunk (" + chunk.j + ", " + chunk.k +") stored at (" + i + ", " + j + ")");
+ MinecraftServer.a.info(chunk.getClass().getName());
+ Throwable x = new Throwable();
+ x.fillInStackTrace();
+ x.printStackTrace();
+ }
+ return chunk;
}
public Chunk e(int i, int j) { // CraftBukkit - private->public
diff --git a/src/main/java/net/minecraft/server/LongHashtable.java b/src/main/java/net/minecraft/server/LongHashtable.java
index d3b1474c..b9dc00e1 100644
--- a/src/main/java/net/minecraft/server/LongHashtable.java
+++ b/src/main/java/net/minecraft/server/LongHashtable.java
@@ -10,10 +10,29 @@ public class LongHashtable<V> extends LongHash
public void put(int msw, int lsw, V value) {
put(toLong(msw, lsw), value);
+ if(value instanceof Chunk) {
+ Chunk c = (Chunk)value;
+ if(msw != c.j || lsw != c.k) {
+ MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")");
+ Throwable x = new Throwable();
+ x.fillInStackTrace();
+ x.printStackTrace();
+ }
+ }
}
public V get(int msw, int lsw) {
- return get(toLong(msw, lsw));
+ V value = get(toLong(msw, lsw));
+ if(value instanceof Chunk) {
+ Chunk c = (Chunk)value;
+ if(msw != c.j || lsw != c.k) {
+ MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")");
+ Throwable x = new Throwable();
+ x.fillInStackTrace();
+ x.printStackTrace();
+ }
+ }
+ return value;
}
public void put(long key, V value) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 50c07c1a..c990a9d6 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -203,12 +203,6 @@ public class World implements IBlockAccess {
}
result = lastChunkAccessed;
}
- if(result.j != i || result.k != j) {
- if(this instanceof WorldServer) {
- WorldServer ws = (WorldServer) this;
- MinecraftServer.a.severe("Chunk fetched was not the chunk requested.");
- }
- }
return result;
}
// CraftBukkit end