Update from 1.1.10 to 1.2.1 loading world crash
Starior opened this issue · 2 comments
Updated only Zenith to the current version
crash-2024-07-08_13.26.18-server.txt
crash-2024-07-08_13.26.19-client.txt
Looks to be a conflict with Extra RPG Attributes.
Basically:
- Zenith, to check LootCategories for heavy weapons, creates some dummy entities to check
canDisableShield
(there really doesn't seem to be a better way to do this) - it equips them with items and callssetItemInHand
- This calls
onEquipItem
, where ExtraRPGAttributes injects to call getAttributeModifiers to check if they should delay reabsorption - Fabric API's ModifyItemAttributeModifiersCallback hooks into
getAttributeModifiers
- (The change in this update): Zenith uses the ModifyItemAttributeModifiersCallback to add gem modifiers, in which it tries to reevaluate LootCategories to determine how to apply them
I suggested a workaround to the developer of Extra RPG Attributes for onEquipStackAbsorption
to cancel early and not call getAttributeModifiers if triggered from itself (using a ThreadLocal), maybe that's enough or maybe something here is Cursed ™️
The Extra RPG Attributes dev said they’ll look into implementing the ThreadLocal failsafe
For now, there’s a somewhat serviceable workaround depending on your modlist. Using
- Zenith
- Zephyr
- Extra RPG Attributes
- Better Combat
Will prevent this crash, as this original check for heavy weapons is bypassed entirely.