Compatibility with ChunkByChunk
immortius opened this issue ยท 1 comments
Reported on my end (as developer of ChunkByChunk) with immortius/chunkbychunk#1
Reproduced running:
- ChunkByChunk 1.6.0
- Minecraft 1.18.1
- Forge 39.1.2
- YUNGs Better Dungeons 1.18.1-1.0.1
- YUNG's API 1.18.1-Forge-24
Error when creating a world:
java.lang.IllegalArgumentException: Multiple entries with same key: com.yungnickyoung.minecraft.betterdungeons.world.structure.small_dungeon.SmallDungeonStructure@54567b05={net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature@2e6b379c=[ResourceKey[minecraft:worldgen/biome / minecraft:mushroom_fields], ResourceKey[minecraft:worldgen/biome / minecraft:the_void], ResourceKey[minecraft:worldgen/biome / minecraft:swamp], ResourceKey[minecraft:worldgen/biome / minecraft:birch_forest], ResourceKey[minecraft:worldgen/biome / minecraft:lush_caves], ResourceKey[minecraft:worldgen/biome / minecraft:ice_spikes], ResourceKey[minecraft:worldgen/biome / minecraft:end_highlands], ResourceKey[minecraft:worldgen/biome / minecraft:sunflower_plains], ResourceKey[minecraft:worldgen/biome / minecraft:stony_peaks], ResourceKey[minecraft:worldgen/biome / minecraft:meadow], ResourceKey[minecraft:worldgen/biome / minecraft:grove], ResourceKey[minecraft:worldgen/biome / minecraft:forest], ResourceKey[minecraft:worldgen/biome / minecraft:nether_wastes], ResourceKey[minecraft:worldgen/biome / minecraft:end_midlands], ResourceKey[minecraft:worldgen/biome / minecraft:plains], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_forest], ResourceKey[minecraft:worldgen/biome / minecraft:small_end_islands], ResourceKey[minecraft:worldgen/biome / minecraft:old_growth_spruce_taiga], ResourceKey[minecraft:worldgen/biome / minecraft:taiga], ResourceKey[minecraft:worldgen/biome / minecraft:snowy_slopes], ResourceKey[minecraft:worldgen/biome / minecraft:crimson_forest], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_gravelly_hills], ResourceKey[minecraft:worldgen/biome / minecraft:dripstone_caves], ResourceKey[minecraft:worldgen/biome / minecraft:dark_forest], ResourceKey[minecraft:worldgen/biome / minecraft:snowy_plains], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_hills], ResourceKey[minecraft:worldgen/biome / minecraft:soul_sand_valley], ResourceKey[minecraft:worldgen/biome / minecraft:desert], ResourceKey[minecraft:worldgen/biome / minecraft:savanna], ResourceKey[minecraft:worldgen/biome / minecraft:eroded_badlands], ResourceKey[minecraft:worldgen/biome / minecraft:snowy_taiga], ResourceKey[minecraft:worldgen/biome / minecraft:frozen_peaks], ResourceKey[minecraft:worldgen/biome / minecraft:flower_forest], ResourceKey[minecraft:worldgen/biome / minecraft:stony_shore], ResourceKey[minecraft:worldgen/biome / minecraft:the_end], ResourceKey[minecraft:worldgen/biome / minecraft:wooded_badlands], ResourceKey[minecraft:worldgen/biome / minecraft:jagged_peaks], ResourceKey[minecraft:worldgen/biome / minecraft:old_growth_birch_forest], ResourceKey[minecraft:worldgen/biome / minecraft:sparse_jungle], ResourceKey[minecraft:worldgen/biome / minecraft:end_barrens], ResourceKey[minecraft:worldgen/biome / minecraft:jungle], ResourceKey[minecraft:worldgen/biome / minecraft:badlands], ResourceKey[minecraft:worldgen/biome / minecraft:old_growth_pine_taiga], ResourceKey[minecraft:worldgen/biome / minecraft:warped_forest], ResourceKey[minecraft:worldgen/biome / minecraft:basalt_deltas], ResourceKey[minecraft:worldgen/biome / minecraft:savanna_plateau], ResourceKey[minecraft:worldgen/biome / minecraft:bamboo_jungle], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_savanna]]} and com.yungnickyoung.minecraft.betterdungeons.world.structure.small_dungeon.SmallDungeonStructure@54567b05={net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature@2e6b379c=[ResourceKey[minecraft:worldgen/biome / minecraft:mushroom_fields], ResourceKey[minecraft:worldgen/biome / minecraft:the_void], ResourceKey[minecraft:worldgen/biome / minecraft:swamp], ResourceKey[minecraft:worldgen/biome / minecraft:birch_forest], ResourceKey[minecraft:worldgen/biome / minecraft:lush_caves], ResourceKey[minecraft:worldgen/biome / minecraft:ice_spikes], ResourceKey[minecraft:worldgen/biome / minecraft:end_highlands], ResourceKey[minecraft:worldgen/biome / minecraft:sunflower_plains], ResourceKey[minecraft:worldgen/biome / minecraft:stony_peaks], ResourceKey[minecraft:worldgen/biome / minecraft:meadow], ResourceKey[minecraft:worldgen/biome / minecraft:grove], ResourceKey[minecraft:worldgen/biome / minecraft:forest], ResourceKey[minecraft:worldgen/biome / minecraft:nether_wastes], ResourceKey[minecraft:worldgen/biome / minecraft:end_midlands], ResourceKey[minecraft:worldgen/biome / minecraft:plains], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_forest], ResourceKey[minecraft:worldgen/biome / minecraft:small_end_islands], ResourceKey[minecraft:worldgen/biome / minecraft:old_growth_spruce_taiga], ResourceKey[minecraft:worldgen/biome / minecraft:taiga], ResourceKey[minecraft:worldgen/biome / minecraft:snowy_slopes], ResourceKey[minecraft:worldgen/biome / minecraft:crimson_forest], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_gravelly_hills], ResourceKey[minecraft:worldgen/biome / minecraft:dripstone_caves], ResourceKey[minecraft:worldgen/biome / minecraft:dark_forest], ResourceKey[minecraft:worldgen/biome / minecraft:snowy_plains], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_hills], ResourceKey[minecraft:worldgen/biome / minecraft:soul_sand_valley], ResourceKey[minecraft:worldgen/biome / minecraft:desert], ResourceKey[minecraft:worldgen/biome / minecraft:savanna], ResourceKey[minecraft:worldgen/biome / minecraft:eroded_badlands], ResourceKey[minecraft:worldgen/biome / minecraft:snowy_taiga], ResourceKey[minecraft:worldgen/biome / minecraft:frozen_peaks], ResourceKey[minecraft:worldgen/biome / minecraft:flower_forest], ResourceKey[minecraft:worldgen/biome / minecraft:stony_shore], ResourceKey[minecraft:worldgen/biome / minecraft:the_end], ResourceKey[minecraft:worldgen/biome / minecraft:wooded_badlands], ResourceKey[minecraft:worldgen/biome / minecraft:jagged_peaks], ResourceKey[minecraft:worldgen/biome / minecraft:old_growth_birch_forest], ResourceKey[minecraft:worldgen/biome / minecraft:sparse_jungle], ResourceKey[minecraft:worldgen/biome / minecraft:end_barrens], ResourceKey[minecraft:worldgen/biome / minecraft:jungle], ResourceKey[minecraft:worldgen/biome / minecraft:badlands], ResourceKey[minecraft:worldgen/biome / minecraft:old_growth_pine_taiga], ResourceKey[minecraft:worldgen/biome / minecraft:warped_forest], ResourceKey[minecraft:worldgen/biome / minecraft:basalt_deltas], ResourceKey[minecraft:worldgen/biome / minecraft:savanna_plateau], ResourceKey[minecraft:worldgen/biome / minecraft:bamboo_jungle], ResourceKey[minecraft:worldgen/biome / minecraft:windswept_savanna]]}
at MC-BOOTSTRAP/[email protected]/com.google.common.collect.ImmutableMap.conflictException(ImmutableMap.java:376)
at MC-BOOTSTRAP/[email protected]/com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:370)
at MC-BOOTSTRAP/[email protected]/com.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:153)
at MC-BOOTSTRAP/[email protected]/com.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:115)
at MC-BOOTSTRAP/[email protected]/com.google.common.collect.ImmutableMap$Builder.buildOrThrow(ImmutableMap.java:574)
at MC-BOOTSTRAP/[email protected]/com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:538)
at TRANSFORMER/[email protected]/com.yungnickyoung.minecraft.betterdungeons.init.BDModStructureFeatures.addStructureToBiomes(BDModStructureFeatures.java:204)
at TRANSFORMER/[email protected]/com.yungnickyoung.minecraft.betterdungeons.init.BDModStructureFeatures.addStructuresToBiomesAndDimensions(BDModStructureFeatures.java:157)
at MC-BOOTSTRAP/[email protected]/net.minecraftforge.eventbus.EventBus.doCastFilter(EventBus.java:247)
at MC-BOOTSTRAP/[email protected]/net.minecraftforge.eventbus.EventBus.lambda$addListener$11(EventBus.java:239)
at MC-BOOTSTRAP/[email protected]/net.minecraftforge.eventbus.EventBus.post(EventBus.java:302)
at MC-BOOTSTRAP/[email protected]/net.minecraftforge.eventbus.EventBus.post(EventBus.java:283)
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.m_129815_(MinecraftServer.java:395)
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.m_130006_(MinecraftServer.java:313)
at TRANSFORMER/[email protected]/net.minecraft.client.server.IntegratedServer.m_7038_(IntegratedServer.java:66)
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:644)
at TRANSFORMER/[email protected]/net.minecraft.server.MinecraftServer.m_177918_(MinecraftServer.java:258)
at java.base/java.lang.Thread.run(Thread.java:833)
For context, Chunk By Chunk on start of a new world will shunt the overworld dimension configuration into a new dimension and then replace the overworld dimension with a new ChunkGenerator implementation wrapping the original - source. I think this issues occurs because on my end the same ChunkGenerator.settings object is shared across both generators... at least initially, after save/load they would be split. Then better dungeons attempts to inject into both, and hits this error on the second one.
I'll look to see if I can find a clean way to duplicate the settings or parent generator on my end. Likely already fixed in Better Dungeons for 1.18.2 though, with its structure data files.