InvRewind 1.3.0
What's Changed
New Features
- Offline Player Restore System: Schedule inventory restores for offline players
- Restores automatically apply when player joins the server
- Configurable 24-hour expiry (admin notified if player doesn't join in time)
- Player freeze during restore (prevents movement, inventory actions, item pickup/drop)
- Title message shown during restore process
- Full selective restore support (inventory, armor, offhand, ender chest, health, hunger, XP, location)
- Latest scheduled restore overwrites previous ones
- Admin notifications on join, completion, failure, and expiry
- Console logging for all restore events
- Works with all database types (YAML, SQLite, MySQL)
- Can be fully enabled/disabled via config (
offline-restore.enabled)
GUI Improvements
- All Players Display: Shows both online and offline players with backups in
/invrewindGUI- Online players shown first, then offline players alphabetically
- Status indicator (online/offline) in player skull lore
- "Schedule Offline Restore" button appears when target player is offline (if feature enabled)
- One-click scheduling with automatic configuration
Command Improvements
- Tab completion now includes offline player names with backups
/invrewind <playername>works for both online and offline players- Async player lookup for offline players
- All commands support both online and offline player targets
Message Updates
- All offline restore messages use small caps gradient format
- Database fallback messages converted to small caps gradient
- Consistent styling across all user-facing messages
- Improved readability and visual consistency
Configuration
- New
offline-restoreconfig section with full customization:enabled: Enable/disable offline restore feature completely (default: true)expiry-hours: Time before pending restore expires (default: 24)expiry-check-interval: How often to check for expired restores (default: 3600 seconds)apply-delay-ticks: Delay before applying restore after join (default: 20 ticks)freeze-player: Prevent player actions during restore (default: true)- Customizable title messages and timing
- Config version bumped to 3 with automatic migration
- All existing settings preserved during migration
Technical Details
- Added
OfflineRestoreManagerfor handling pending restores - Added
OfflineRestoreListenerfor join events and player freeze - Added
PendingRestoremodel to store all restore configuration - Added
getAllPlayersWithBackups()method to BackupManager - Supports YAML folder scanning and SQL database queries
- Automatic cleanup of expired restores
- Handles edge cases: player quit during restore, server restart, rejoin scenarios
- Sorts players: online first, then alphabetically
- Full Folia and Paper compatibility maintained
Full Changelog: https://github.com/mukulx/invrewind/commits/v1.3.0