Incompatibility with c2me
AntonIXO opened this issue ยท 4 comments
Bumblezone breaks c2me async chunk generation.
Crash log: https://pastebin.com/dckReKzK
I am spawning my dungeon nbt files exactly just like how vanilla spawns their fossils. So if anything, it would be the reverse. Other mods are breaking vanilla behavior and causing spawner blocks spawned from nbt files in a feature to crash. The question I got is who is feeding the read only chunk to the feature instead of a world chunk. If it is C2me, then they are changing vanilla behavior as I have not see this crash at all while generating massive areas of bumblezone myself in many modpack. I will need to look into this more and ask around
java.lang.ClassCastException: class net.minecraft.world.chunk.ReadOnlyChunk cannot be cast to class net.minecraft.world.chunk.WorldChunk (net.minecraft.world.chunk.ReadOnlyChunk and net.minecraft.world.chunk.WorldChunk are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @3c09711b)
at net.minecraft.world.World.getChunk(World.java:9078)
at net.minecraft.world.World.getBlockState(World.java:9570)
at net.minecraft.block.entity.MobSpawnerBlockEntity$1.setSpawnEntry(MobSpawnerBlockEntity.java:27)
at net.minecraft.world.MobSpawnerLogic.readNbt(MobSpawnerLogic.java:207)
at net.minecraft.MobSpawnerBlockEntity.readNbt(MobSpawnerBlockEntity.java:40)
at net.minecraft.structure.StructureTemplate.place(StructureTemplate.java:263)
at com.telepathicgrunt.the_bumblezone.world.features.NbtFeature.generate(NbtFeature.java:57)
at com.telepathicgrunt.the_bumblezone.world.features.SpiderInfestedBeeDungeon.generate(SpiderInfestedBeeDungeon.java:28)
at net.minecraft.world.gen.feature.ConfiguredFeature.generate(ConfiguredFeature.java:537)
at net.minecraft.world.gen.feature.PlacedFeature.method_39646(PlacedFeature.java:56)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180)
at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:711)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at net.minecraft.world.gen.feature.PlacedFeature.generate(PlacedFeature.java:55)
at net.minecraft.world.gen.feature.PlacedFeature.generate(PlacedFeature.java:44)
at net.minecraft.world.gen.chunk.ChunkGenerator.generateFeatures(ChunkGenerator.java:466)
at net.minecraft.world.chunk.ChunkStatus.method_20613(ChunkStatus.java:145)
at net.minecraft.world.chunk.ChunkStatus.md8f9000$lambda$runGenerationTask$0$6(ChunkStatus.java:2601)
at com.ishland.c2me.threading.worldgen.common.ChunkStatusUtils$ChunkStatusThreadingType$2.lambda$runTask$0(ChunkStatusUtils.java:87)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
I used this site to remap it to read it easier https://shartte.github.io/minecraft-mapper/
But anyway, I was talking with C2ME dev and it turns out they did forget to wrap the chunk which caused a read only chunk to be given to my mod and crashed. You can wait till C2ME published an update to fix this or you can try disabling this config Ishland mentions