Repurposed Structures (Neoforge/Forge)

Repurposed Structures (Neoforge/Forge)

58M Downloads

`Exception generating new chunk`

TheGag96 opened this issue ยท 6 comments

commented

Just got the following crash in my server on exploring in the world. I'm on the modpack Better Minecraft 1.19.2 (Fabric) with the following mods added:

  • Create 0.5.0f-776
  • Iron Chests Restocked 3.1.1
  • Disenchanter 0.1.7
  • Red Bits 1.14.0
  • Luggage 1.5.1
  • MobCatcher 1.2.14

Hopefully this isn't a duplicate of #225 or something else!

java.util.concurrent.CompletionException: net.minecraft.class_148: Exception generating new chunk
        at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
        at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
        at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1159) ~[?:?]
        at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at net.minecraft.class_3900.method_17634(class_3900.java:62) ~[server-intermediary.jar:?]
        at net.minecraft.class_3846.method_16907(class_3846.java:91) ~[server-intermediary.jar:?]
        at net.minecraft.class_3846.method_16900(class_3846.java:146) ~[server-intermediary.jar:?]
        at net.minecraft.class_3846.run(class_3846.java:102) ~[server-intermediary.jar:?]
        at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[?:?]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?]
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?]
        at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?]
Caused by: net.minecraft.class_148: Exception generating new chunk
        at net.minecraft.class_3898.method_17225(class_3898.java:695) ~[server-intermediary.jar:?]
        at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-5.0.28.jar:?]
        at net.minecraft.class_3898.method_17224(class_3898.java:673) ~[server-intermediary.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
        ... 11 more
Caused by: java.lang.ClassCastException: class it.unimi.dsi.fastutil.objects.ObjectObjectImmutablePair cannot be cast to class com.mojang.datafixers.util.Pair (it.unimi.dsi.fastutil.objects.ObjectObjectImmutablePair and com.mojang.datafixers.util.Pair are in unnamed module of loader net.fabricmc.loader.impl.launch.knot.KnotClassLoader @153f5a29)
        at java.util.stream.ReferencePipeline$4$1.accept(ReferencePipeline.java:214) ~[?:?]
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.IntPipeline.reduce(IntPipeline.java:515) ~[?:?]
        at com.telepathicgrunt.repurposedstructures.world.structures.pieces.PieceLimitedJigsawManager$Assembler.processList(PieceLimitedJigsawManager.java:355) ~[repurposed_structures_fabric-6.1.1+1.19.jar:?]
        at com.telepathicgrunt.repurposedstructures.world.structures.pieces.PieceLimitedJigsawManager$Assembler.generatePiece(PieceLimitedJigsawManager.java:318) ~[repurposed_structures_fabric-6.1.1+1.19.jar:?]
        at com.telepathicgrunt.repurposedstructures.world.structures.pieces.PieceLimitedJigsawManager.lambda$assembleJigsawStructure$2(PieceLimitedJigsawManager.java:169) ~[repurposed_structures_fabric-6.1.1+1.19.jar:?]
        at net.minecraft.class_3195$class_7150.method_44021(class_3195.java:116) ~[server-intermediary.jar:?]
        at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-5.0.28.jar:?]
        at net.minecraft.class_3195$class_7150.method_44019(class_3195.java:114) ~[server-intermediary.jar:?]
        at net.minecraft.class_3195.method_41614(class_3195.java:125) ~[server-intermediary.jar:?]
        at net.minecraft.class_2794.method_41044(class_2794.java:638) ~[server-intermediary.jar:?]
        at net.minecraft.class_2794.method_41041(class_2794.java:620) ~[server-intermediary.jar:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[?:?]
        at java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720) ~[?:?]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
        at net.minecraft.class_2794.method_16129(class_2794.java:573) ~[server-intermediary.jar:?]
        at net.minecraft.class_2806.method_39464(class_2806.java:59) ~[server-intermediary.jar:?]
        at net.minecraft.class_2806.method_12154(class_2806.java:292) ~[server-intermediary.jar:?]
        at net.minecraft.class_3898.method_17225(class_3898.java:679) ~[server-intermediary.jar:?]
        at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-5.0.28.jar:?]
        at net.minecraft.class_3898.method_17224(class_3898.java:673) ~[server-intermediary.jar:?]
        at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
        ... 11 more
commented

Are you positive you did not add any other mods? I cannot reproduce the issue with the modpack and mods you stated.
image

In fact, looking at the code, this crash shouldn't even be physically possible. The list that PieceLimitedJigsawManager$Assembler.processList( takes is a list of com.mojang.datafixers.util.Pair. A list of it.unimi.dsi.fastutil.objects.ObjectObjectImmutablePair cannot be passed in and yet the stacktrace says it did which makes no sense. Nothing here is logical...

commented

Actually, the typing of the list gets stripped when compiled so the list of wrong type would be able to get in. But that would mean someone managed to somehow shove the wrong pair type into vanilla's StructureTemplatePool's rawTemplates field...

commented

@TheGag96 When you can, unzip this and put this jar onto your server. Start the server. Then one server is started or crashed, give me the entire latest.log file from the logs folder above the mods folder. This RS jar should print out what template pool and entry is using the wrong data type. Hopefully from the entry, we can see what mod could be at fault.
repurposed_structures_fabric-6.1.2-whodunnit+1.19.jar.zip

commented

It looks like it might be Farmer's Delight. Did you do any change to make vanilla villages use RS's generic structure type? That's the only way I can see this crash happening. But the issue lies with Farmer's Delight to fix as they accidentally injected the wrong pair class into the list.

commented

I made no changes to any configs outside of what Better Minecraft already did. Thanks for making the issue over there!

commented

They just released an update. Updating to 1.3.9 - 1.19.X Farmer's Delight should fix your issue