MCTCP / TerrainControl

Minecraft Terrain Generator for SpigotMC and Forge
https://www.spigotmc.org/threads/terraincontrol.37980/
MIT License
230 stars 163 forks source link

Setting wrong ReplaceToBiomeName may cause biome to use wrong saved id #490

Open bloodmc opened 7 years ago

bloodmc commented 7 years ago

https://github.com/MCTCP/TerrainControl/blob/master/common/src/main/java/com/khorn/terraincontrol/configuration/ServerConfigProvider.java#L271-L280

So lets say you have 2 biomes : MountainBiome and OceanBiome. MountainBiome is a virtual biome with an id of 500 that sets ReplaceToBiomeName to OceanBiome OceanBiome is a normal biome with an id of 200 that sets ReplaceToBiomeName to Ocean

With the above example, the code would cause MountainBiome's generation id to remain 500 which Forge would store in registry causing a level.dat biome validation error on server startup.

I think it would be more appropriate to throw a RuntimeException in these cases instead of logging a warning. Thoughts?

rutgerkok commented 7 years ago

A RuntimeException is not very nice, but I don't see any other way. Preventing the biome from loading is possible, but would require quite some restructuring of the code.