--- a/net/minecraft/server/ChunkMap.java +++ b/net/minecraft/server/ChunkMap.java @@ -31,6 +31,46 @@ } } + // CraftBukkit start + // Update neighbor counts + for (int x = -2; x < 3; x++) { + for (int z = -2; z < 3; z++) { + if (x == 0 && z == 0) { + continue; + } + + Chunk neighbor = this.get(ChunkCoordIntPair.a(chunkcoordintpair.x + x, chunkcoordintpair.z + z)); + if (neighbor != null) { + neighbor.setNeighborLoaded(-x, -z); + chunk.setNeighborLoaded(x, z); + } + } + } + + if (chunk.newChunk) { + BlockSand.instaFall = true; + java.util.Random random = new java.util.Random(); + random.setSeed(chunk.world.getSeed()); + long xRand = random.nextLong() / 2L * 2L + 1L; + long zRand = random.nextLong() / 2L * 2L + 1L; + random.setSeed((long) chunk.locX * xRand + (long) chunk.locZ * zRand ^ chunk.world.getSeed()); + + org.bukkit.World world = chunk.world.getWorld(); + if (world != null) { + chunk.world.populating = true; + try { + for (org.bukkit.generator.BlockPopulator populator : world.getPopulators()) { + populator.populate(world, random, chunk.bukkitChunk); + } + } finally { + chunk.world.populating = false; + } + } + BlockSand.instaFall = false; + chunk.world.getServer().getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(chunk.bukkitChunk)); + } + // CraftBukkit end + return chunk1; } @@ -69,23 +109,25 @@ throw new RuntimeException("Not yet implemented"); } - public Object remove(Object object) { + // CraftBukkit start - decompile errors + public Chunk remove(Object object) { return this.a(object); } - public Object remove(long i) { + public Chunk remove(long i) { return this.a(i); } - public Object put(Long olong, Object object) { + public Chunk put(Long olong, Chunk object) { return this.a(olong, (Chunk) object); } - public Object put(long i, Object object) { + public Chunk put(long i, Chunk object) { return this.a(i, (Chunk) object); } - public Object put(Object object, Object object1) { + public Object put(Object object, Chunk object1) { return this.a((Long) object, (Chunk) object1); } + // CraftBukkit end }