Backpack data loss on server crash:
- Periodic auto-save (every 5min) now includes backpack content snapshots.
Previously backpacks were only saved on logout/shutdown — hard crashes
(OOM, watchdog, kill -9) skipped both, losing all backpack changes.
- snapshotBackpackData captures NBT with .copy() on main thread.
Backpack ender chest restore mismatch:
- doBackPackRestore now scans ender chest in addition to main inventory.
Save side already scanned ender chest, but restore didn't — backpacks
in ender chest were saved to DB but never restored on join.
ReviveMe mod compatibility:
- Dead player kick check now uses health <= 0 instead of isDeadOrDying().
ReviveMe puts players in a "downed" state (alive but isDeadOrDying=true)
— previously these players were kicked on join.
Infinite effect filtering (phantom effects fix):
- Effects with infinite duration are now skipped during save. These come
from ReviveMe (downed state effects with MAX_VALUE duration), beacons,
and other mods. Syncing them across servers caused phantom effects.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>