delvr / Streams

Flowing rivers in Minecraft.
https://minecraft.curseforge.com/projects/streams
55 stars 7 forks source link

[1.12.2] Crash during chunk population #62

Closed luke-bravenboer closed 6 years ago

luke-bravenboer commented 6 years ago

Description: In a custom modpack, while exploring the world, I've encountered an area where I'm in a crash-loop as the game tries to generate a particular new chunk. I've been developing this modpack for months, and this is the first time this issue has popped up- so it's surely quite an edge case... though the fact that it's a ClassCastException, trying to convert a ChunkPos to a Boolean, seems like some shenanigans to me

Stack trace:

[22:45:45] [Server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.event.terraingen.PopulateChunkEvent$Pre@286bef22:
java.lang.ClassCastException: net.minecraft.util.math.ChunkPos cannot be cast to java.lang.Boolean
    at scala.runtime.BoxesRunTime.unboxToBoolean(BoxesRunTime.java:89) ~[scala-library-2.11.1.jar:?]
    at farseek.world.package$.populating(package.scala:37) ~[package$.class:?]
    at streams.block.BlockRiver.func_176213_c(BlockRiver.scala:39) ~[BlockRiver.class:?]
    at net.minecraft.world.chunk.Chunk.func_177436_a(Chunk.java:614) ~[axw.class:?]
    at net.minecraft.world.World.func_180501_a(World.java:342) ~[amu.class:?]
    at farseek.world.package$WorldValue$.setBlockAt$extension(package.scala:206) ~[package$WorldValue$.class:?]
    at farseek.world.BlockWriteAccess$WorldBlockAccess$.setBlockAt(BlockWriteAccess.scala:31) ~[BlockWriteAccess$WorldBlockAccess$.class:?]
    at farseek.world.BlockWriteAccess$WorldBlockAccess$.setBlockAt(BlockWriteAccess.scala:28) ~[BlockWriteAccess$WorldBlockAccess$.class:?]
    at farseek.world.WrappedBlockSetter$class.setBlockAt(BlockSetter.scala:27) ~[WrappedBlockSetter$class.class:?]
    at farseek.world.gen.PopulatingArea.setBlockAt(PopulatingArea.scala:12) ~[PopulatingArea.class:?]
    at farseek.world.BlockWriteAccess$NonWorldBlockWriteAccess$.setBlockAt(BlockWriteAccess.scala:44) ~[BlockWriteAccess$NonWorldBlockWriteAccess$.class:?]
    at farseek.world.BlockWriteAccess$NonWorldBlockWriteAccess$.setBlockAt(BlockWriteAccess.scala:41) ~[BlockWriteAccess$NonWorldBlockWriteAccess$.class:?]
    at farseek.world.WrappedBlockSetter$class.setBlockAt(BlockSetter.scala:27) ~[WrappedBlockSetter$class.class:?]
    at farseek.world.gen.structure.ComponentBuilder.setBlockAt(StructureComponent.scala:32) ~[ComponentBuilder.class:?]
    at farseek.world.BlockWriteAccess$NonWorldBlockWriteAccess$.setBlockAt(BlockWriteAccess.scala:44) ~[BlockWriteAccess$NonWorldBlockWriteAccess$.class:?]
    at farseek.world.BlockWriteAccess$NonWorldBlockWriteAccess$.setBlockAt(BlockWriteAccess.scala:41) ~[BlockWriteAccess$NonWorldBlockWriteAccess$.class:?]
    at farseek.world.package$$anonfun$setBlockAt$1.apply(package.scala:134) ~[package$$anonfun$setBlockAt$1.class:?]
    at farseek.world.package$$anonfun$setBlockAt$1.apply(package.scala:134) ~[package$$anonfun$setBlockAt$1.class:?]
    at scala.Option.exists(Option.scala:228) ~[scala-library-2.11.1.jar:?]
    at farseek.world.package$.setBlockAt(package.scala:134) ~[package$.class:?]
    at farseek.world.package$.setBlockAndDataAt(package.scala:139) ~[package$.class:?]
    at streams.world.gen.structure.RiverComponent.streams$world$gen$structure$RiverComponent$$setRiverBlockAt(RiverComponent.scala:377) ~[RiverComponent.class:?]
    at streams.world.gen.structure.RiverComponent$$anonfun$build$2.apply(RiverComponent.scala:310) ~[RiverComponent$$anonfun$build$2.class:?]
    at streams.world.gen.structure.RiverComponent$$anonfun$build$2.apply(RiverComponent.scala:288) ~[RiverComponent$$anonfun$build$2.class:?]
    at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:778) ~[scala-library-2.11.1.jar:?]
    at scala.collection.Iterator$class.foreach(Iterator.scala:743) ~[scala-library-2.11.1.jar:?]
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1174) ~[scala-library-2.11.1.jar:?]
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) ~[scala-library-2.11.1.jar:?]
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54) ~[scala-library-2.11.1.jar:?]
    at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:777) ~[scala-library-2.11.1.jar:?]
    at streams.world.gen.structure.RiverComponent.build(RiverComponent.scala:288) ~[RiverComponent.class:?]
    at farseek.world.gen.structure.StructureComponent.build(StructureComponent.scala:21) ~[StructureComponent.class:?]
    at farseek.world.gen.structure.Structure$$anonfun$build$2.apply(Structure.scala:40) ~[Structure$$anonfun$build$2.class:?]
    at farseek.world.gen.structure.Structure$$anonfun$build$2.apply(Structure.scala:40) ~[Structure$$anonfun$build$2.class:?]
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) ~[scala-library-2.11.1.jar:?]
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) ~[scala-library-2.11.1.jar:?]
    at farseek.world.gen.structure.Structure.build(Structure.scala:40) ~[Structure.class:?]
    at streams.world.gen.structure.RiverGenerator$$anonfun$build$1$$anonfun$apply$3$$anonfun$apply$4.apply(RiverGenerator.scala:57) ~[RiverGenerator$$anonfun$build$1$$anonfun$apply$3$$anonfun$apply$4.class:?]
    at streams.world.gen.structure.RiverGenerator$$anonfun$build$1$$anonfun$apply$3$$anonfun$apply$4.apply(RiverGenerator.scala:57) ~[RiverGenerator$$anonfun$build$1$$anonfun$apply$3$$anonfun$apply$4.class:?]
    at scala.Option.foreach(Option.scala:245) ~[scala-library-2.11.1.jar:?]
    at streams.world.gen.structure.RiverGenerator$$anonfun$build$1$$anonfun$apply$3.apply(RiverGenerator.scala:57) ~[RiverGenerator$$anonfun$build$1$$anonfun$apply$3.class:?]
    at streams.world.gen.structure.RiverGenerator$$anonfun$build$1$$anonfun$apply$3.apply(RiverGenerator.scala:57) ~[RiverGenerator$$anonfun$build$1$$anonfun$apply$3.class:?]
    at scala.Option.foreach(Option.scala:245) ~[scala-library-2.11.1.jar:?]
    at streams.world.gen.structure.RiverGenerator$$anonfun$build$1.apply(RiverGenerator.scala:57) ~[RiverGenerator$$anonfun$build$1.class:?]
    at streams.world.gen.structure.RiverGenerator$$anonfun$build$1.apply(RiverGenerator.scala:56) ~[RiverGenerator$$anonfun$build$1.class:?]
    at scala.collection.immutable.Set$Set1.foreach(Set.scala:83) ~[scala-library-2.11.1.jar:?]
    at streams.world.gen.structure.RiverGenerator.build(RiverGenerator.scala:56) ~[RiverGenerator.class:?]
    at farseek.world.gen.structure.StructureGenerator.onPrePopulateChunk(StructureGenerator.scala:77) ~[StructureGenerator.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1811_StructureGenerator_onPrePopulateChunk_Pre.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
    at net.minecraftforge.event.ForgeEventFactory.onChunkPopulate(ForgeEventFactory.java:723) [ForgeEventFactory.class:?]
    at net.minecraft.world.gen.ChunkGeneratorOverworld.func_185931_b(ChunkGeneratorOverworld.java:395) [aze.class:?]
    at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1017) [axw.class:?]
    at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:997) [axw.class:?]
    at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157) [on.class:?]
    at net.minecraft.server.management.PlayerChunkMapEntry.func_187268_a(PlayerChunkMapEntry.java:126) [ot.class:?]
    at net.minecraft.server.management.PlayerChunkMap.func_72693_b(SourceFile:147) [ou.class:?]
    at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:227) [oo.class:?]
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:754) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:666) [MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185) [chd.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:524) [MinecraftServer.class:?]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]

Versions: Forge: 2673 Streams: 1.12-0.4.3 Farseek-1.12-2.2.4

The main worldgen-affecting mods I have installed are:

luke-bravenboer commented 6 years ago

By dropping the render distance down to 2 & exploring the nearby terrain, the offending area seems quite likely to be in an ocean, of all places

delvr commented 6 years ago

Hi Ligands! Please update to Farseek 2.2.5 to fix this.

luke-bravenboer commented 6 years ago

Oh wow, I should've searched harder, didn't even realise I wasn't on the latest version. Sorry, thanks!

delvr commented 6 years ago

No worries, enjoy! :)