diff --git a/src/main/java/net/minecraft/pathfinding/PathFinder.java b/src/main/java/net/minecraft/pathfinding/PathFinder.java index 9371cd2..f12d2eb 100644 --- a/src/main/java/net/minecraft/pathfinding/PathFinder.java +++ b/src/main/java/net/minecraft/pathfinding/PathFinder.java @@ -262,7 +262,7 @@ { for (int j1 = par3; j1 < par3 + par4PathPoint.zCoord; ++j1) { - Block block = par0Entity.worldObj.getBlock(l, i1, j1); + Block block = par0Entity.worldObj.getBlockIfExists(l, i1, j1); if (block.getMaterial() != Material.air) { diff --git a/src/main/java/net/minecraft/world/ChunkCache.java b/src/main/java/net/minecraft/world/ChunkCache.java index 213858b..1d24b2e 100644 --- a/src/main/java/net/minecraft/world/ChunkCache.java +++ b/src/main/java/net/minecraft/world/ChunkCache.java @@ -37,7 +37,7 @@ { for (k2 = this.chunkZ; k2 <= i2; ++k2) { - chunk = par1World.getChunkFromChunkCoords(j2, k2); + chunk = par1World.getChunkIfExists(j2, k2); if (chunk != null) { diff --git a/src/main/java/net/minecraft/world/World.java b/src/main/java/net/minecraft/world/World.java index 88dd350..de35ada 100644 --- a/src/main/java/net/minecraft/world/World.java +++ b/src/main/java/net/minecraft/world/World.java @@ -1997,7 +1997,7 @@ //boolean isForced = getPersistentChunks().containsKey(new ChunkCoordIntPair(i >> 4, j >> 4)); //byte b0 = isForced ? (byte)0 : 32; //boolean canUpdate = !par2 || this.checkChunksExist(i - b0, 0, j - b0, i + b0, 0, j + b0); - boolean canUpdate = par1Entity.isEntityPlayerMP() || activeChunkSet.containsKey(ChunkHash.chunkToKey(i >> 4, j >> 4)) && this.chunkRoundExists(i >> 4, j >> 4, 2); + boolean canUpdate = par1Entity.isEntityPlayerMP() || activeChunkSet.containsKey(ChunkHash.chunkToKey(i >> 4, j >> 4)); //if (!canUpdate) //{ @@ -3985,6 +3985,18 @@ public static final int MAX_BLOCK_COORD = 500000;//524288; + public Chunk getChunkIfExists(int cx, int cz) + { + return getChunkFromChunkCoords(cx, cz); + } + + public Block getBlockIfExists(int x, int y, int z) + { + if(blockExists(x, y, z)) + return getBlock(x, y, z); + return Blocks.air; + } + public boolean chunkRoundExists(int cx, int cz, int radius) { for(int x = cx - radius; x <= cx + radius; x++)