✦ SYNCINVENTORY ✦
Cross-Server Inventory Synchronization with Anti-Dupe & Rollback System
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHY CHOOSE SYNCINVENTORY?
Tired of players losing items when switching servers? SyncInventory brings seamless cross-server sync
where players keep their entire inventory
across your network — with rollback protection and zero duplication exploits.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS
►Player Switches Server - Inventory saved to MySQL/SQLite automatically
►Data Syncs Instantly - Redis or Plugin Messaging notifies other servers
►Inventory Restored - Player joins new server with full inventory intact
►Anti-Dupe Protection - 5-layer system prevents any duplication exploits
►Rollback System - Admins can restore any player's inventory from snapshots
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
EPIC-STYLE ROLLBACK GUI
✓Paginated Snapshot Browser - Browse all inventory snapshots with page navigation
✓Filter System - Newest, Oldest, Deaths Only, Quits Only
✓Player Search - Sign-based search input for quick player finding
✓Snapshot Details - View death cause, server, time, stats before restoring
✓One-Click Restore - Restore inventory without killing the player
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5-LAYER ANTI-DUPE SYSTEM
✓Optimistic Locking - Version checking prevents concurrent overwrites
✓Sync Locks - Per-player locks prevent simultaneous operations
✓Pending Sync Tracking - Blocks saves during active loads
✓Join Delay - Configurable delay prevents race conditions
✓Auto Retry - Automatic retry on version conflicts with force-save fallback
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CROSS-SERVER SYNC
✓MySQL/SQLite - HikariCP connection pooling with auto-fallback
✓Redis Pub/Sub - Instant sync notifications across servers
✓Plugin Messaging - BungeeCord/Velocity fallback for sync
✓Auto Migration - Automatic database schema upgrades
✓Server Stats - Track player count, TPS, memory across servers
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMMANDS
►/si sync - Manually sync your inventory
►/si status - Show sync status
►/si enderchest - Open synced ender chest
►/si rollback <player> - Open rollback GUI
►/si restore <player> - Restore from backup
►/si forcesync <player> - Force sync player
►/si reload - Reload configuration
Aliases: /syncinv, /syncinventory
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PERMISSIONS
✓syncinventory.use - Basic commands (default: op)
✓syncinventory.sync - Manual sync (default: op)
✓syncinventory.enderchest - Synced ender chest (default: op)
✓syncinventory.rollback - Rollback GUI (default: op)
✓syncinventory.admin - All admin commands (default: op)
✓syncinventory.* - All permissions (default: op)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONFIGURATION
Everything is configurable through a simple YAML file:
✓Storage Backend - MySQL or SQLite with full connection pool settings
✓Sync Options - Toggle inventory, ender chest, XP, health, hunger, potions, economy
✓Anti-Dupe Settings - Lock timeout, max retries, join delay, save timeout
✓Rollback Settings - Snapshot on death/quit/join, retention hours, max snapshots
✓Ender Chest - Configurable rows (1-6), custom GUI title, command access
✓Backup System - Auto-backup before saves, configurable retention
✓Redis Settings - Host, port, password, channel name, pool size
✓Messages - Fully customizable message strings with color codes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SYNCED DATA
✓Main Inventory - Hotbar, armor, offhand, all contents
✓Ender Chest - Up to 54 slots (6 rows)
✓Experience - XP points and level
✓Health & Hunger - Current health, max health, food level, saturation
✓Potion Effects - All active potion effects with duration
✓Gamemode & Flight - Optional sync for gamemode and flight state
✓Economy Balance - Vault integration for balance sync
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
COMPATIBILITY
✓Folia - Fully compatible with regionized multithreading
✓Paper 1.20+ - Recommended — full feature support
✓Spigot 1.20+ - Full compatibility
✓BungeeCord - Plugin messaging support
✓Velocity - Plugin messaging support
✓Java 17+ - Required
✓Vault - Optional — for economy sync
✓Redis - Optional — for instant sync notifications
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DATABASE SCHEMA
4 tables auto-created on first run:
►player_data - Main player inventory and stats storage
►player_data_backup - Automatic backup snapshots
►inventory_snapshots - Rollback system snapshots
►server_stats - Cross-server health monitoring
►sync_log - Audit log for all sync operations
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ROLLBACK SYSTEM
✓Auto Snapshots - Taken on death, quit, join, and server transfer
✓ Great GUI - Paginated with filter, search, and confirm dialog
✓No Death Rollback - Restores inventory without killing the player
✓Anti-Dupe Protected - Clears inventory before applying, locks during restore
✓Cross-Server - Snapshots sync across all servers via MySQL
✓Configurable - Toggle snapshot types, set retention, max snapshots
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Cross-Server Inventory Synchronization with Anti-Dupe & Rollback System
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Tired of players losing items when switching servers? SyncInventory brings seamless cross-server sync
where players keep their entire inventory
across your network — with rollback protection and zero duplication exploits.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
►Player Switches Server - Inventory saved to MySQL/SQLite automatically
►Data Syncs Instantly - Redis or Plugin Messaging notifies other servers
►Inventory Restored - Player joins new server with full inventory intact
►Anti-Dupe Protection - 5-layer system prevents any duplication exploits
►Rollback System - Admins can restore any player's inventory from snapshots
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓Paginated Snapshot Browser - Browse all inventory snapshots with page navigation
✓Filter System - Newest, Oldest, Deaths Only, Quits Only
✓Player Search - Sign-based search input for quick player finding
✓Snapshot Details - View death cause, server, time, stats before restoring
✓One-Click Restore - Restore inventory without killing the player
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓Optimistic Locking - Version checking prevents concurrent overwrites
✓Sync Locks - Per-player locks prevent simultaneous operations
✓Pending Sync Tracking - Blocks saves during active loads
✓Join Delay - Configurable delay prevents race conditions
✓Auto Retry - Automatic retry on version conflicts with force-save fallback
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓MySQL/SQLite - HikariCP connection pooling with auto-fallback
✓Redis Pub/Sub - Instant sync notifications across servers
✓Plugin Messaging - BungeeCord/Velocity fallback for sync
✓Auto Migration - Automatic database schema upgrades
✓Server Stats - Track player count, TPS, memory across servers
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
►/si sync - Manually sync your inventory
►/si status - Show sync status
►/si enderchest - Open synced ender chest
►/si rollback <player> - Open rollback GUI
►/si restore <player> - Restore from backup
►/si forcesync <player> - Force sync player
►/si reload - Reload configuration
Aliases: /syncinv, /syncinventory
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓syncinventory.use - Basic commands (default: op)
✓syncinventory.sync - Manual sync (default: op)
✓syncinventory.enderchest - Synced ender chest (default: op)
✓syncinventory.rollback - Rollback GUI (default: op)
✓syncinventory.admin - All admin commands (default: op)
✓syncinventory.* - All permissions (default: op)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Everything is configurable through a simple YAML file:
✓Storage Backend - MySQL or SQLite with full connection pool settings
✓Sync Options - Toggle inventory, ender chest, XP, health, hunger, potions, economy
✓Anti-Dupe Settings - Lock timeout, max retries, join delay, save timeout
✓Rollback Settings - Snapshot on death/quit/join, retention hours, max snapshots
✓Ender Chest - Configurable rows (1-6), custom GUI title, command access
✓Backup System - Auto-backup before saves, configurable retention
✓Redis Settings - Host, port, password, channel name, pool size
✓Messages - Fully customizable message strings with color codes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓Main Inventory - Hotbar, armor, offhand, all contents
✓Ender Chest - Up to 54 slots (6 rows)
✓Experience - XP points and level
✓Health & Hunger - Current health, max health, food level, saturation
✓Potion Effects - All active potion effects with duration
✓Gamemode & Flight - Optional sync for gamemode and flight state
✓Economy Balance - Vault integration for balance sync
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓Folia - Fully compatible with regionized multithreading
✓Paper 1.20+ - Recommended — full feature support
✓Spigot 1.20+ - Full compatibility
✓BungeeCord - Plugin messaging support
✓Velocity - Plugin messaging support
✓Java 17+ - Required
✓Vault - Optional — for economy sync
✓Redis - Optional — for instant sync notifications
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4 tables auto-created on first run:
►player_data - Main player inventory and stats storage
►player_data_backup - Automatic backup snapshots
►inventory_snapshots - Rollback system snapshots
►server_stats - Cross-server health monitoring
►sync_log - Audit log for all sync operations
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓Auto Snapshots - Taken on death, quit, join, and server transfer
✓ Great GUI - Paginated with filter, search, and confirm dialog
✓No Death Rollback - Restores inventory without killing the player
✓Anti-Dupe Protected - Clears inventory before applying, locks during restore
✓Cross-Server - Snapshots sync across all servers via MySQL
✓Configurable - Toggle snapshot types, set retention, max snapshots
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
