--- a/net/minecraft/server/ChunkGenerator.java +++ b/net/minecraft/server/ChunkGenerator.java @@ -214,6 +214,13 @@ while (iterator.hasNext()) { StructureFeature<?, ?> structurefeature = (StructureFeature) iterator.next(); + // CraftBukkit start + if (structurefeature.b == StructureGenerator.STRONGHOLD) { + synchronized (structurefeature) { + this.a(structurefeature, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase); + } + } else + // CraftBukkit end this.a(structurefeature, structuremanager, ichunkaccess, definedstructuremanager, i, chunkcoordintpair, biomebase); } @@ -293,9 +300,11 @@ } static { - IRegistry.a(IRegistry.CHUNK_GENERATOR, "noise", (Object) ChunkGeneratorAbstract.d); - IRegistry.a(IRegistry.CHUNK_GENERATOR, "flat", (Object) ChunkProviderFlat.d); - IRegistry.a(IRegistry.CHUNK_GENERATOR, "debug", (Object) ChunkProviderDebug.e); + // CraftBukkit start - decompile errors + IRegistry.a(IRegistry.CHUNK_GENERATOR, "noise", ChunkGeneratorAbstract.d); + IRegistry.a(IRegistry.CHUNK_GENERATOR, "flat", ChunkProviderFlat.d); + IRegistry.a(IRegistry.CHUNK_GENERATOR, "debug", ChunkProviderDebug.e); + // CraftBukkit end a = IRegistry.CHUNK_GENERATOR.dispatchStable(ChunkGenerator::a, Function.identity()); } }