Releases: mukulx/invrewind
Releases · mukulx/invrewind
Release list
InvRewind 1.4.0
What's New in v1.4.0
Features
- Changed default database from YAML to SQLite for better performance
- Enhanced update checker with detailed console version logging
- Added admin join notifications for available updates
- Simplified update-checker config to single 'enabled' option
Bug Fixes
- Fixed debug logs appearing when debug mode is disabled
Configuration
- Bumped config version to 4 with automatic migration support
- Admin notifications require invrewind.admin permission
Full Changelog: v1.3.2...v1.4.0
InvRewind 1.3.2
What's New in v1.3.2
Major Improvements
🎨 Fixed Gradient Colors & Messages
- Integrated Adventure API 4.17.0: All gradient messages now render properly with smooth color transitions
- MiniMessage Support: Full support for
<gradient>tags in all messages - Fixed Color Rendering: Titles, chat messages, and GUI text now display gradients correctly
- Consistent Styling: All messages use small caps gradient format throughout the plugin
🔧 Fixed YAML Player Detection
- Fixed
/irnot showing offline players in YAML mode: Now correctly scans backup folders and reads UUIDs from files - Improved Folder Parsing: Reads player UUIDs directly from backup YAML files instead of folder names
- Works with all storage modes: YAML, SQLite, and MySQL all show offline players correctly
- Added debug logging: Helps troubleshoot any scanning issues
📦 Restore vs Overwrite Clarity
- "Add Backup Items" button (Emerald): Keeps current items and adds backup items to inventory
- Excess items drop on ground if inventory is full
- Perfect for recovering lost items without losing current gear
- "Overwrite Inventory" button (Orange Dye): Clears inventory first, then restores backup
- Complete inventory replacement
- Useful for full rollbacks
- Clear button descriptions: Lore text explains the difference between the two modes
🌐 Offline Player Restore Improvements
- Smart offline handling: Clicking restore/overwrite on offline players schedules the restore
- Restore type preserved: System remembers whether to add items or overwrite when player joins
- Database schema updated: New
overwritefield tracks restore mode - Backward compatible: Old pending restores default to "add items" mode
Technical Changes
- Added Adventure API and MiniMessage dependencies (shaded and relocated)
- Updated MessageManager to use MiniMessage's native gradient parsing
- Removed manual gradient implementation in favor of MiniMessage
- Added
RestoreUtil.addInventoryItems()method for non-destructive restores - Updated
PendingRestoremodel withoverwriteflag - Database migration support for new
overwritecolumn (MySQL, SQLite, YAML) - All direct
sendMessage()calls now use MiniMessage for proper formatting
Bug Fixes
- Fixed gradient messages not rendering colors
- Fixed offline players not appearing in
/irGUI with YAML storage - Fixed tab completion not showing offline players
- Fixed color codes showing as raw text instead of colors
- Fixed title messages in offline restore showing broken formatting
Full Changelog: https://github.com/mukulx/invrewind/commits/v1.3.2
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
InvRewind 1.2.0
What's Changed
New Features
- Database Migration System: Export and import backups between YAML, SQLite, and MySQL formats
- Export current database to any format with
/invrewind export [type] - Import from any format with
/invrewind import <type> <filename> - Async processing with progress logging every 100 backups
- Tab completion shows available import files
- Automatic duplicate detection and skipping on import
Improvements
- Database fallback system: Plugin falls back to YAML if MySQL/SQLite connection fails
- Clear warning messages when fallback is active
- Config auto-migration from v1 to v2 with backup
- All migration commands work from console
- Database connection validation before SQL imports
- Helpful error messages guide users to fix configuration issues
Technical Details
- Added MigrationManager for handling all export/import operations
- Export formats: YAML folders, SQLite .db files, MySQL .sql dumps
- Import folder structure: imports/yaml/, imports/sqlite/, imports/mysql/
- Config option: migration.delete-source-after-import (default: false)
- New permissions: invrewind.export, invrewind.import (OP only)
- Config version bumped to 2
- Full Folia and Paper compatibility maintained
Full Changelog: https://github.com/mukulx/invrewind/commits/v1.2.0
InvRewind 1.1.0
What's Changed
New Features
- Added automatic database fallback system - plugin now falls back to YAML storage if MySQL/SQLite connection fails
- Plugin remains functional while admins fix database configuration issues
- Clear warning messages displayed when fallback is active
Technical Details
- Database type tracking separated from configuration
- Graceful error handling for database initialization failures
- Config file remains unchanged during fallback mode
Full Changelog: https://github.com/mukulx/invrewind/commits/v1.1.0
InvRewind 1.0.1
What's Changed
Bug Fixes
- Fixed Folia compatibility issue where UpdateChecker was using direct Bukkit scheduler calls
- Plugin now properly loads on Folia servers without throwing UnsupportedOperationException
Technical Details
- Replaced
Bukkit.getScheduler()calls withSchedulerUtilmethods in UpdateChecker - Maintains full compatibility with Paper and Purpur servers
Full Changelog: https://github.com/mukulx/invrewind/commits/v1.0.1
InvRewind 1.0.0
Highly configurable inventory backup and restore plugin for Paper, Purpur, and Folia.