alcatrazEscapee / Chocolate

A mod that fixes some annoying bugs with vanilla's data driven world gen in 1.16
https://www.curseforge.com/minecraft/mc-mods/chocolate-fix
MIT License
4 stars 3 forks source link

Crash with Advanced Rocketry #10

Open SirEndii opened 3 years ago

SirEndii commented 3 years ago

The Server crashes when a player tries to build a rocket.

Advanced Rocketry version: 2.0.0-10 Forge: 36.1.13 Chocolate Version: 1.3.0-1.16.4 Stacktrace: https://gist.github.com/Seniorendi/184038f7f0150858a43feed517b7cfe3 In the log is a text with "Please Report this to Chocolate!" this is the reason why I'm here.

alcatrazEscapee commented 3 years ago

Right. So I know exactly what's going on here.

Chocolate makes an assumption - that BiomeContainer should always be given a Registry<Biome>, in order to properly encode biome IDs using the runtime dynamic registry. Vanilla always does this, but does not require this. This exception is indicative that Advanced Rocketry is breaking that assumption. In particular, (for example) here:

https://github.com/Advanced-Rocketry/AdvancedRocketry/blob/b13546cf86fac60c43a8fe431b5d3a3c0eb8cd8f/src/main/java/zmaster587/advancedRocketry/util/StorageChunk.java#L134

Now, generally, I would hope that Advanced Rocketry would be able to pass in the actual biome registry - however taking a brief look I have some concerns in the way that might be handled. Ideally, by passing in:

ServerLifecycleHooks.getCurrentServer().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY)

Now, assuming that they don't fix this in said form, that leaves two options. One, is that I would need to very carefully special case biome containers constructed with weird registries. This would be a massive pain.

The other option, which I would assume you are more interested in, would just be to remove chocolate. The reason being, you are using a Forge version (36.1.13) which has actually (finally) fixed the primary bug Chocolate was created for. So unless you really need MC-197616 fixed, you very likely won't be seeing any issues just by removing Chocolate.

SirEndii commented 3 years ago

The other option, which I would assume you are more interested in, would just be to remove chocolate. The reason being, you are using a Forge version (36.1.13) which has actually (finally) fixed the primary bug Chocolate was created for. So unless you really need MC-197616 fixed, you very likely won't be seeing any issues just by removing Chocolate.

Oh, thank you for your advice!