Skip to content

Releases: mukulx/invrewind

InvRewind 1.4.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 14:13

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

Choose a tag to compare

@github-actions github-actions released this 19 Apr 17:42

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 /ir not 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 overwrite field 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 PendingRestore model with overwrite flag
  • Database migration support for new overwrite column (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 /ir GUI 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

Choose a tag to compare

@github-actions github-actions released this 17 Apr 18:31

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 /invrewind GUI
    • 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-restore config 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 OfflineRestoreManager for handling pending restores
  • Added OfflineRestoreListener for join events and player freeze
  • Added PendingRestore model 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

Choose a tag to compare

@github-actions github-actions released this 15 Apr 14:11

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

Choose a tag to compare

@github-actions github-actions released this 14 Apr 21:56

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

Choose a tag to compare

@github-actions github-actions released this 14 Apr 21:29

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 with SchedulerUtil methods 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

Choose a tag to compare

@github-actions github-actions released this 14 Apr 21:14

Highly configurable inventory backup and restore plugin for Paper, Purpur, and Folia.