team-abnormals / blueprint

Library that implements the framework of all Abnormals mods
https://www.curseforge.com/minecraft/mc-mods/blueprint
Other
114 stars 33 forks source link

end generation is wierd on serevers #87

Closed benbenlaw closed 3 years ago

benbenlaw commented 3 years ago

https://github.com/BlueDuckYT/The-Outer-End/issues/19#event-4414059315 https://github.com/TelepathicGrunt/Bumblezone/issues/56

apparntly it could be a problem with abnormals core

benbenlaw commented 3 years ago

image

bageldotjpg commented 3 years ago

This is a mix of various issues between Forge and Minecraft... you can use this on the latest forge to try and fix it: https://github.com/AllTheMods/ATM-6/issues/437

TelepathicGrunt commented 3 years ago

Bagel, that issue report is not applicable for this issue. The person is using a recent Forge version long after v35.1.4 Forge and is making a new world each time to reproduce the bug on their end. https://github.com/TelepathicGrunt/Bumblezone/issues/56#issuecomment-791505699

I can't reproduce it myself which is odd but that ATM6 post isn't going to help. I got no clue as to what's going on either lol

TelepathicGrunt commented 3 years ago

Found the issue. It is indeed an issue in abnormals. Well, more specifically, it's a very hidden issue with a vanilla method that had caused me great pain in the past. This method https://github.com/team-abnormals/abnormals-core/blob/601548fd273d8eac75ed56b961343a9559fbe58d/src/main/java/com/minecraftabnormals/abnormals_core/core/mixin/EndBiomeProviderMixin.java#L64

If you look inside func_242936_a and see how it works, it actually resolves the biome ID to a registrykey using the WorldGenRegistry biome registry first instead of the DynamicRegistry. Thus if the built in registry is different from the dynamic biome registry (due to json biomes and all), the int ID will be resolved to the wrong registrykey and passed on. This dang method broke my mod a while ago which is why I made my own sample method that reverses how it works by using the dynamic registry FIRST to resolve the int ID to a registry key. If that fails, then try using the built in registry as a backup. Why Mojang has it the wrong way, I have no dang clue lol https://github.com/TelepathicGrunt/Bumblezone/blob/522fa2bd66370a782098f64a95195846c166846b/src/main/java/com/telepathicgrunt/the_bumblezone/dimension/BzBiomeProvider.java#L103-L117

marc-cwm commented 3 years ago

I'm having the same issue on a separate world with a different biome. I am using a modern version of forge (36.0.42), chocolatefix, and a brand new world to test with.

If I remove abnormalscore and everything that requires it, then create a new world, the issue does seem to go away.

Example: image