Crash After Extended Exploring - Possible JEID Incompatibility?
EyeBallin opened this issue ยท 4 comments
This crash has occurred multiple times over multiple worlds I've created. Essentially, after exploring enough of the world, the game crashes, and said world can't be opened again (immediately crashes again with the same issue, but sometimes it'll last for a second or two on load before crashing).
The error comes from here:
java.lang.ArrayIndexOutOfBoundsException: 16 at com.ferreusveritas.dynamictrees.worldgen.BiomeDataBase.getEntry(BiomeDataBase.java:31)
I have a few mods installed (see bottom of bug report for full stack trace and all mods installed), including JEID. And, of course, the whole point of JEID is to allow for a greater maximum amount of various game parts (I believe by changing the data type somehow?).
My guess is that JEID is allowing for Biome.getIdForBiome(biome);
to return a number greater than 255, hence why I'm seeing 16 post bitshift in DynamicTrees' getEntry function.
For now, I can assume that if I disable enough of the biome mods I have installed, I won't encounter this crash. Alternatively, I could be completely wrong about the possible cause of this and it's due to something entirely different. Alas, it's proving difficult to test whether it's a simple case of JEID incompatibility, or a specific biome going around with a rogue ID.
Anyway, here's the stack trace:
java.lang.ArrayIndexOutOfBoundsException: 16 at com.ferreusveritas.dynamictrees.worldgen.BiomeDataBase.getEntry(BiomeDataBase.java:31) at com.ferreusveritas.dynamictrees.worldgen.BiomeDataBase.getDensity(BiomeDataBase.java:147) at com.ferreusveritas.dynamictrees.worldgen.BiomeRadiusCoordinator.getRadiusAtCoords(BiomeRadiusCoordinator.java:39) at com.ferreusveritas.dynamictrees.systems.poissondisc.PoissonDiscProvider.generatePoissonDiscs(PoissonDiscProvider.java:148) at com.ferreusveritas.dynamictrees.systems.poissondisc.PoissonDiscProvider.getPoissonDiscs(PoissonDiscProvider.java:59) at com.ferreusveritas.dynamictrees.systems.poissondisc.PoissonDiscProviderUniversal.getPoissonDiscs(PoissonDiscProviderUniversal.java:33) at com.ferreusveritas.dynamictrees.worldgen.WorldGeneratorTrees.generate(WorldGeneratorTrees.java:111) at net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:167) at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1020) at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:999) at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:157) at net.minecraft.server.management.PlayerChunkMapEntry.func_187268_a(PlayerChunkMapEntry.java:126) at net.minecraft.server.management.PlayerChunkMap.func_72693_b(PlayerChunkMap.java:226) at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:227) at net.optifine.override.WorldServerOF.func_72835_b(WorldServerOF.java:39) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:756) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:252) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) at java.lang.Thread.run(Thread.java:745)
And here's all the components/mods/whatever-the-collection-is-called:
- minecraft | 1.12.2
- mcp | 9.42
- FML | 8.0.99.99
- forge | 14.23.5.2796
- ivtoolkit | 1.3.3-1.12
- openmodscore | 0.12.1
- dsurroundcore |
- securitycraft | v1.8.10
- actuallyadditions | 1.12.2-r144
- baubles | 1.5.2
- actuallybaubles | 1.1
- acuity | %VERSION%
- biomesoplenty | 7.0.1.2422
- craftstudioapi | 1.0.0
- mantle | 1.12-1.3.3.39
- natura | 1.12.2-4.3.2.65
- harvestcraft | 1.12.2zb
- animania | 1.6.2
- autoreglib | 1.3-21
- betteranimals | 3.1
- betteranimalsplus | 3.0.1
- forestry | 5.8.2.374
- binniecore | 2.5.1.184
- binniedesign | 2.5.1.184
- genetics | 2.5.1.184
- botany | 2.5.1.184
- extrabees | 2.5.1.184
- extratrees | 2.5.1.184
- zawa | 1.12.2-1.4.0
- bookworm | 1.12.2-1.0.0
- coralreef | 2.0
- cucumber | 1.1.3
- customspawner | 3.11.4
- mocreatures | 12.0.5
- dynamictrees | 1.12.2-0.9.1h
- dynamictreesbop | 1.12.2-1.4.1e
- dynamictreesphc | 1.12.2-1.4.1e
- exotic_matter | 0.0.1
- familiarfauna | 1.0.11
- ferdinandsflowers | 1.10.4.1
- gottschcore | 1.6.0
- heroicarmory | 1.1.3
- waila | 1.8.26
- journeymap | 1.12.2-5.5.3
- jeid | 1.0.2-26
- lex | 1.0.8
- lilcritters | 1.12.2-0.0.1.2-beta3
- malisiscore | 1.12.2-6.4.0
- malisisdoors | 1.12.2-7.3.0
- mineralogy | 3.4.0
- moregen | 1.1
- mysticalagriculture | 1.7.0
- neid | 1.5.4.3
- nt | 1.0
- openmods | 0.12.1
- openblocks | 1.8
- traverse | 1.6.0
- pvj | 1.4.0
- reccomplex | 1.4.7
- additionalstructures | 1.8.0
- ruins | 17.1
- shipwrecks_winslow | 2.0.0
- undergroundbiomes | 1.3.0
- wawla | 2.5.265
- dsurround | 3.4.10.5
- presets | 3.4.10.5
Ahh, that makes sense. I don't know a whole lot about how Minecraft specifically works and JEID advertises itself as 'NEID done right', so I figured that things would likely be okay from its end. Thanks a lot!
(And I apologise for being too sure that it was a problem with DT rather than JEID. I'm not gonna lie, upon taking a decent look at DT's code, I've realised that your mod is a thing of beauty)
I appreciate that. I also appreciate the issue in general. It's not going to hurt to have these extra checks in place. I don't use JEID so I'd never run across the bug myself in a million years.
It's most likely that there is a problem with JEID changing the way that Minecraft works. Dynamic trees expects 0-255 for the biome id which is a good assumption since that's standard and also the way that it's stored in the chunk. If a core mod changes that behavior then you can't blame DT. I will probably fix this but it will be in the next development cycle. I've already put a range check in place that will prevent the crash but no trees will generate in biome ids greater than 255 for the time being. This change will be in the next beta/release.