Consistency+

Consistency+

2M Downloads

(CRASH) Incompatibility with Immersive Weathering

Tempest-5ky opened this issue ยท 4 comments

commented

Describe the bug:
When walking over a grass stair or slab in multiplayer with the mod Immersive Weathering (https://www.curseforge.com/minecraft/mc-mods/immersive-weathering-fabric) installed, the player in question will experience an instant client crash and be unable to rejoin the server unless they are teleported away.

Versions:
Minecraft version: 1.18.2
C+ version: 0.5.0
Fabric API / QSL / Forge version: 0.58.0 (fabric api)

Other mods:
A LOT, but the culprits in this case seem to just be immersive weathering and consistency+

Logs:
Even if the game does not crash they may be useful!
The error that kicks the player: https://mclo.gs/TLkF9B3
Full log: https://mclo.gs/G0Ghivp

To Reproduce:
Steps to reproduce the behavior. Format it as a numbered list of steps.

  1. Load a minecraft fabric 1.18.2 server with CP and IW
  2. Place down a grass slab or stair and walk over it
  3. Crash

Expected behavior:
No crash, blocks function normally

Screenshots:
n/a

Additional info:
n/a

commented

Thank you! Sorry for the trouble, and thank you for explaining the issue.

commented

I don't believe that they do, no. Their main interactions with grass blocks would be weeds and natural flower growth, neither of which would involve walking over the block.
It's certainly a possibility! But it's not something that I'm aware of.

Either way, I've also reported this issue to them, in case it ends up being something on their end as well.

commented

Thanks for the report, we'll look into it. Does immersive weathering have any features where walking over grass blocks causes them to turn into path blocks over time? I couldn't find any features like that listed on their cf page or wiki, but that seems like the sort of thing that could potentially be causing it if it exists (I may be thinking of another mod that has this feature though)

commented

I'm pretty sure I see what's going on.
all stair blocks reference their base blocks for doing things, including grass stairs. However, Immersive Weathering replaces grass with a custom version. This custom version adds an age property to grass.

So, when you walk on a grass stair, it defers to the grass block, which is actually the Immersive Weathering grass, which expects the block to have an age property. Grass stairs don't have an age, crash ensues.

This is not fixable on our side, and a really bad practice from Immersive Weathering.

The simple fix is add a check to ModGrassBlock to see if the AGE property is present before getting it. However, this is just a workaround for a fundamental flaw. Immersive Weathering really should not be replacing registry entries. C+ is guilty of this with Dirt, but I plan on removing that in the next update.