qouteall / ImmersivePortalsModForForge

Apache License 2.0
53 stars 21 forks source link

New chunk generation crash issue with Immersive Portals 0.9 on Forge 31.1.1 (1.16.4) #183

Open solarblindfull opened 3 years ago

solarblindfull commented 3 years ago

Hello !

I'm on Forge 31.1.1 for Minecraft 1.16.4. Unfortunately, I encounter a big chunk generation issue with Immersive Portals 0.9 (forge 1.16.4) as you can see in the lastest log below. The crash occurs in singleplayer and in my personnal server too (same error) that leads to a world corruption (can't play this world ever again).

Lastest server log [01déc.2020 22:46:22.050] [Worker-Main-136/FATAL] [net.minecraftforge.common.ForgeMod/]: Preparing crash report with UUID 25a7d2ed-cc0e-4d93-bff0-3f4cf1e0f828 [01déc.2020 22:46:22.054] [Server thread/ERROR] [net.minecraftforge.eventbus.EventBus/EVENTBUS]: Exception caught during firing event: net.minecraft.crash.ReportedException: Exception generating new chunk Index: 11 Listeners: 0: NORMAL 1: ASM: net.quetzi.morpheus.helpers.MorpheusEventHandler@54777505 worldTickEvent(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 2: ASM: class com.wonderfulenchantments.enchantments.PhoenixDiveEnchantment onUpdate(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 3: ASM: class insane96mcp.longerdays.WorldTick onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 4: net.minecraftforge.eventbus.EventBus$$Lambda$2740/1328199540@b4498f 5: ASM: class com.wonderfulenchantments.enchantments.DodgeEnchantment updateEntitiesKnockBackImmunity(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 6: ASM: class vazkii.quark.oddities.magnetsystem.MagnetSystem tick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 7: ASM: vazkii.quark.automation.module.FeedingTroughModule@56285f31 buildTroughSet(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 8: ASM: vazkii.quark.automation.module.PistonsMoveTileEntitiesModule@5ae52c0e onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 9: ASM: vazkii.quark.tweaks.module.ImprovedSleepingModule@3a5bd8b7 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 10: ASM: com.natamus.zombiehorsespawn.events.ZombieHorseEvent@18c9671e onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 11: ASM: com.natamus.skeletonhorsespawn.events.SkeletonHorseEvent@10586f7 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V 12: ASM: com.natamus.giantspawn.events.GiantEvent@5f072537 onWorldTick(Lnet/minecraftforge/event/TickEvent$WorldTickEvent;)V java.util.concurrent.CompletionException: net.minecraft.crash.ReportedException: Exception generating new chunk at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:961) at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926) at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442) at net.minecraft.world.chunk.ChunkTaskPriorityQueueSorter.func_219083_b(SourceFile:58) at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213148_e(SourceFile:94) at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213145_a(SourceFile:137) at net.minecraft.util.concurrent.DelegatedTaskExecutor.run(SourceFile:105) at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) Caused by: net.minecraft.crash.ReportedException: Exception generating new chunk at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:535) at com.mojang.datafixers.util.Either$Left.map(Either.java:38) at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522) at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952) ... 11 more Caused by: java.lang.ArrayIndexOutOfBoundsException: -1 at net.minecraft.world.chunk.IChunk.func_217308_a(IChunk.java:138) at net.minecraft.world.chunk.ChunkPrimerTickList.func_205362_a(SourceFile:59) at net.minecraft.world.ITickList.func_205360_a(SourceFile:9) at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.buildSurface(CanyonSB.java:114) at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.func_205610_a_(CanyonSB.java:17) at net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder.func_215450_a(SourceFile:27) at net.minecraft.world.biome.Biome.func_206854_a(Biome.java:303) at com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator.func_225551_a_(ErrorTerrainGenerator.java:217) at net.minecraft.world.chunk.ChunkStatus.lambda$static$6(ChunkStatus.java:63) at net.minecraft.world.chunk.ChunkStatus$ISelectiveWorker.doWork(ChunkStatus.java:240) at net.minecraft.world.chunk.ChunkStatus.func_223198_a(ChunkStatus.java:198) at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:524) ... 14 more [01déc.2020 22:46:22.056] [Server thread/ERROR] [net.minecraft.server.MinecraftServer/]: Encountered an unexpected exception java.util.concurrent.CompletionException: net.minecraft.crash.ReportedException: Exception generating new chunk at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_202] at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[?:1.8.0_202] at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:961) ~[?:1.8.0_202] at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:926) ~[?:1.8.0_202] at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:442) ~[?:1.8.0_202] at net.minecraft.world.chunk.ChunkTaskPriorityQueueSorter.func_219083_b(SourceFile:58) ~[?:?] at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213148_e(SourceFile:94) ~[?:?] at net.minecraft.util.concurrent.DelegatedTaskExecutor.func_213145_a(SourceFile:137) ~[?:?] at net.minecraft.util.concurrent.DelegatedTaskExecutor.run(SourceFile:105) ~[?:?] at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402) ~[?:1.8.0_202] at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[?:1.8.0_202] at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[?:1.8.0_202] at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) ~[?:1.8.0_202] at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[?:1.8.0_202] Caused by: net.minecraft.crash.ReportedException: Exception generating new chunk at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:535) ~[?:?] at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[?:?] at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522) ~[?:?] at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952) ~[?:1.8.0_202] ... 11 more Caused by: java.lang.ArrayIndexOutOfBoundsException: -1 at net.minecraft.world.chunk.IChunk.func_217308_a(IChunk.java:138) ~[?:?] at net.minecraft.world.chunk.ChunkPrimerTickList.func_205362_a(SourceFile:59) ~[?:?] at net.minecraft.world.ITickList.func_205360_a(SourceFile:9) ~[?:?] at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.buildSurface(CanyonSB.java:114) ~[byg:1.1.5] at corgiaoc.byg.common.world.surfacebuilder.CanyonSB.func_205610_a_(CanyonSB.java:17) ~[byg:1.1.5] at net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder.func_215450_a(SourceFile:27) ~[?:?] at net.minecraft.world.biome.Biome.func_206854_a(Biome.java:303) ~[?:?] at com.qouteall.imm_ptl_peripheral.alternate_dimension.ErrorTerrainGenerator.func_225551_a_(ErrorTerrainGenerator.java:217) ~[immersive_portals:0.9] at net.minecraft.world.chunk.ChunkStatus.lambda$static$6(ChunkStatus.java:63) ~[?:?] at net.minecraft.world.chunk.ChunkStatus$ISelectiveWorker.doWork(ChunkStatus.java:240) ~[?:?] at net.minecraft.world.chunk.ChunkStatus.func_223198_a(ChunkStatus.java:198) ~[?:?] at net.minecraft.world.server.ChunkManager.lambda$null$18(ChunkManager.java:524) ~[?:?] at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[?:?] at net.minecraft.world.server.ChunkManager.lambda$chunkGenerate$20(ChunkManager.java:522) ~[?:?] at java.util.concurrent.CompletableFuture.uniCompose(CompletableFuture.java:952) ~[?:1.8.0_202] ... 11 more

The issue is random when I play in the world, even if I stay near the spawn. I play with Quark, Oh The Biome You'll Go and Biome'O Plenty mods (lastest versions).

I use the dimension mods Bumblezone, Undergarden and World Blender

I made an issue report to the BYG page too in case, as you can see in the link bellow : https://github.com/CorgiTaco/BYG/issues/181

Can you see what's wrong please ?

Thank very much for your attention and have a good day !

qouteall commented 3 years ago

The alternate dimension generation has conflict with byg. Try to set enableAlterDimensions to false in config/immersive-portals-common.toml

solarblindfull commented 3 years ago

After few tests the issue seems to be gone. Thank very much !

It's weird that the alternate dimensions make the world crash even if the player doesn't goes in and/or the dimensions aren't in Dimension Stack...

Have a good day !

CorgiTaco commented 3 years ago

This is most likely the result of Solar adding/removing/updating any of their biomes mods. Basically here's a scenario:

Let's say.... The biome mods I have installed are BYG(Numerical ID's are 100 - 125), BOP(126 - 155), and Prehistoric Fauna(156 - 207). I create a new world. the biome at 0, 0 is a PHF Hell's Creek. Only the Biome numerical ID is saved to the chunk so... PHF Hell's Creek in this case is 157. So biome numerical ID 157 is stored at 0, 0. Alright... BYG just got an update and they added 3 new biomes. So what happens? Well.... The biome mods I have installed are now BYG(Numerical ID's are 100 - 128), BOP(129 - 158), and Prehistoric Fauna(159 - 210). So now the biome at 0, 0 still has the numerical ID 157 but.... the ID's have shifted, now the biome at 0, 0 is a Biomes O Plenty Alps Biome.

solarblindfull commented 3 years ago

Thank for the explanation. I didn't know that updating/add a biome mod to an existing world was so risky. That's not a very secure way of managing chunk attributes from Mojang :o

But I still don't understand why my world crashing for a dimension that not even loaded by player or command... Is it because Minecraft load chunk 0,0 of every dimension in the first place before player reach it ?

CorgiTaco commented 3 years ago

A suggestion I'd have is leave the surface builder method empty so it doesnt call any other mods surface builder in the event the biomes shift