Spice of life: Non-standard dimension switching implementation causes attribute desync.
juliand665 opened this issue ยท 3 comments
I'm the current maintainer of Spice of Life: Carrot Edition, and we've received a report that the max health (which our mod increases based on unique foods eaten) is reset client-side (until the next change) after teleporting to/from an OTG dimension. After several hours, this is what I've found out:
- Everything works fine with vanilla portals (nether/end), so I'd like to think we're doing things right on our side (since we're not doing anything hardcoded to just those portals).
- All the data is there, the capability data is even getting synced to the client. It's just that the client-side max health doesn't match up with the server-side max health.
- Even when manually triggering a health update after the fact, nothing happens. Notably, our code doesn't change anything if the new value wouldn't be different from the current value, so I guess that's just the desync at work again.
I'm pretty sure this is down to your code somehow desyncing the max health (and potentially other attributes!) between client and server, somewhere in your teleportation logic.
Thanks for getting back to me so quickly!
- I tested and it works fine with twilight forest.
- I tried to build the newest version from source yesterday, but it crashed outside the dev environment.
The newest build from discord worked just fine! Looks like I can mark this as fixed then :)
Hey, thanks for reporting, a few points:
- Could you test to make sure this only happens with OTG, and not also with other mods that add dimensions, such as Twilight Forest?
- Which version are you using? V7 has a lot of improvements for dimensions, you can grab the latest dev version from the Discord at /openterraingen, hopefully that solves the problem already.
- Does this only happen when using portals to travel to OTG dimensions, or also when traveling via the "O" menu's teleport button?
- We have had some problems before with the teleportation logic, as far as I can see it's doing things pretty much the same way vanilla is, but I'm certainly not excluding any mistakes on the OTG end.