When updating from 1.17 to 1.18, existing Garden of Glass worlds can't be opened
natedogith1 opened this issue ยท 3 comments
Mod Loader
Fabric
Minecraft Version
1.17.1 & 1.18.1
Botania version
1.17.1-422-FABRIC & 1.18.1-427-FABRIC
Modloader version
1.17.1 Fabric: Loader 0.13.2 + API 0.46.1 1.18.1 Fabric: Loader 0.13.2 + API 0.46.4
Modpack info
No response
The latest.log file
https://gist.github.com/natedogith1/75da976563ebd5ac038a22cec3a918e6
Issue description
When updating from 1.17.1 to 1.18.1, worlds of the Garden of Glass type can't be opened. The log vies the error java.lang.IllegalStateException: WorldGenSettingsHeightAndBiomeFix failed. While the client displays this:
Steps to reproduce
- Have a 1.17 and 1.18 modded minecraft instances
- Create world in 1.17 instance with world type Garden of Glass
- Copy save from 1.17 instance to 1.18 instance (if I knew how to upgrade the instance from 1.17 to 1.18, that would probably also work)
- Try to open world in 1.18 instance.
Other information
I've looked at the minecraft code a bit, and it looks like the 2832 schema fails if the world type isn't minecraft:debug, minecraft:flat, or minecraft:noise.
Well, GoG for 1.17+ hasn't even been officially released yet, but I know Willie likes to keep things compatible with future versions and this will still be a problem for 1.16->1.18... The problem is, nobody really knows how to do datafixers anymore, with DFU being a pretty convoluted and undocumented thing.
There are no hooks for it at all on the Fabric side (with the few attempts at adding one being kinda limited), and on the Forge side there is a PR open, but the previous one was immediately reverted after breaking a lot of things. We might have to write some ugly mixins for this.
Honestly, I personally feel like it might be better to take Vazkii's example here with Quark 1.18 and outright declare upgrading as unsupported. You may be better off editing the world to use the vanilla worldtype, upgrading, and then editing back to use the GoG worldtype.
Replacing the world gen with a vanilla one (I used a superflat void preset) does allow it to upgrade. I saw some issues with spreader aiming, but I tested and also get those with a fresh 1.18 world without gog installed (#3954).