patcher: guard remaining NPE paths in CoreProtect-rollback crash cascade #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/coreprotect-rollback-npe-guards"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The existing
update_isSpectatorguard (a49e216) fixed the first crash but leftLevelRenderer.update()running into a second directminecraft.playeraccess further down. Chasing that exposed three more null-player/null-connection paths that all trigger during the same transient window (heavy chunk reload / CoreProtect rollback):LevelRenderer.update(): HEAD guard, cancel whenminecraft.playeris nullLevelRenderer.extractLevel(): HEAD guard, same conditionEntity.hasIndirectPassenger()WrapOperation: guard null passengerMixinGui.extractCameraOverlays(): HEAD guard, cancel when player is nullViewManager.updateLocation(): guard nullgetConnection()(CoreProtect reconnect race)All five skip one frame / return a safe default with no observable gameplay effect.
Verification:
--release 17)hasCommercialLicense=iconst_1, no network residue)Closing: superseded by
9499a14on main, which re-homed the isSpectator guard to MixinCamera for Axiom 5.5.0 / MC 26.2. These guards target the 5.4.x / MC 26.1 render pipeline (MixinLevelRenderer.update()no longer exists from 5.5.0), so they cannot apply to current upstream. Branch left in place for reference.Pull request closed