XTransferСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (8)
alpha
Improves
1.3-alpha13 мая 2026 г.212Minecraft: 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, folia, paper, purpur, spigot
Что нового
## Added
- Transactional file migration using a temporary staging directory to ensure all-or-nothing data transfer
- Non-blocking retry mechanism using `ScheduledExecutorService` with configurable delay between attempts
- Automatic rollback of backup files when the final atomic move operation fails
- Staging directory cleanup on transfer failure to prevent leftover temporary files
- `FilePair` helper class to encapsulate source, temporary destination, final destination, and critical/optional flag for each migrated file
## Fixed
- Thread pool blocking caused by recursive `copyWithRetry` consuming worker threads during retry waits
- Data inconsistency when some files succeed and others fail during a single transfer operation (partial transfer no longer possible)
- Backup file not being created before the main data copy, risking loss of the target player's original data
## Changed
- `copyWithRetry` now uses `ScheduledExecutorService` for delayed retries instead of recursive calls on the main executor pool
- `copyFile` now performs a single copy attempt and returns immediately, with retry logic handled externally
- `transferPlayerData` and related methods replaced by `transferAllFiles`, `copyAllToTemp`, and `moveTempToTarget` to support transactional migration
- Backup creation and optional file transfers (stats, advancements) integrated into the unified transactional pipeline
- `ExecutorService` renamed to `executor` for clarity; new `scheduler` field added for delayed retry scheduling
## Removed
- Recursive retry logic (`copyWithRetry` calling itself with `thenCompose`) that blocked worker threads
- Separate `backupIfNeeded`, `transferMainData`, `transferExtraData`, and `transferFile` methods, consolidated into `transferAllFiles` and supporting methods
- Direct file overwrite approach that allowed partial transfer states
release
Fixes...
1.2-rls27 февр. 2026 г.98Minecraft: 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Added `MAX_CACHE_SIZE` (1000) limit to prevent memory overflow when loading usercache.json
- Added automatic cleanup task to remove stale player locks and access records every hour
- Added performance monitoring with loading time statistics in debug logs
- Added detailed debug logging for file operations, lock acquisition, and error conditions
- Added disk space check before backup operations
### Changed
- **Refactored data loading**: Merged `loadUserCache()` and `loadNameToUUIDs()` into single `loadPlayerData()` method for better performance
- **Improved lock management**: Locks now track last access time and are automatically cleaned up
- **Enhanced error handling**: All exceptions now include detailed debug messages instead of being ignored
- **Optimized file copying**: Implemented atomic temp file operations with proper cleanup
- **Restructured command handling**: Unified `transfer` and `transferuuid` logic into single method
- **Improved backup system**: Added proper file existence checks and atomic operations
- **Enhanced tab completion**: Added offline player name suggestions with limits
- **Better executor shutdown**: Added timeout handling and forced termination if needed
### Fixed
- **Critical**: Fixed recursive scheduling in `startCleanupTask()` that could cause stack overflow
- **Critical**: Removed dangerous offline UUID fallback that could match wrong players (`UUID.nameUUIDFromBytes`)
- Fixed scheduler parameter bug where `null` could be passed instead of plugin instance
- Fixed potential memory leak by properly removing locks on player quit
- Fixed file copy failure when parent directories don't exist
- Fixed race condition in task tracking set during concurrent operations
- Fixed incorrect stats file extension for older server versions (<1.13)
- Fixed potential deadlock by implementing consistent lock ordering
- Fixed missing message placeholders in several command responses
### Removed
- Removed dangerous offline UUID generation (`UUID.nameUUIDFromBytes`)
- Removed redundant `async` parameter from Bukkit scheduler calls
- Removed duplicate data loading methods in favor of unified approach
- Removed empty catch blocks that silently ignored exceptions
- Removed unnecessary thread pool for simple operations
beta
Another optimization!
1.2-beta26 февр. 2026 г.24Minecraft: 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Folia server support with global region scheduler
- Async file copy operations with buffered streams
- User cache loading from usercache.json
- Name-to-UUID mapping system for offline player lookup
- Backup file creation with configurable suffix
- Disk space checking before file operations (50MB reserve)
- File copy retry mechanism (3 retries with 1 second delay)
- Atomic file operations using temporary files
- Memory leak prevention with automatic lock cleanup system
- Periodic cache cleanup task (runs every hour)
- Player quit event listener to remove unused locks
- Last access time tracking for lock management
- Version detection fallback for unknown server versions
- Multi-language support with message placeholders
- Stats and advancements transfer with version detection
- List command for player data with pagination
- Tab completion with online and offline player support
- Player kick option for online target players
### Changed
- Migrated to CompletableFuture for reliable async operations
- Optimized concurrent map operations with atomic replacements
- Improved UUID parsing with better error handling and formatting
- Enhanced scheduler with automatic Folia/Bukkit detection
- Simplified logging system while keeping debug functionality
- Better resource cleanup in onDisable() with timeout handling
- Streamlined configuration loading with auto-fix
- More efficient name-to-UUID mapping updates
- Optimized file copy with proper buffer sizing (8KB)
- Improved lock acquisition with timeout and deadlock prevention
### Fixed
- Potential memory leak from unclosed player locks
- Thread safety issues in cache loading (added synchronization)
- Disk space exhaustion crashes during file transfer
- Server version detection crashes with unusual formats
- Concurrent modification issues in map operations
- File copy failures due to cross-filesystem moves
- Backup file corruption from incomplete writes
- Tab completion NPE with null permissions
- UUID format inconsistencies in user input
- Player kick timing issues with async operations
- Configuration loading errors with missing keys
- Resource leaks in file streams (try-with-resources)
- Shutdown hangs from unfinished tasks
### Removed
- Redundant constant classes (merged into simple constants)
- Excessive logging methods (consolidated into core ones)
- Overly detailed debug outputs (kept essential only)
- Unnecessary map clearing operations
- Duplicate code blocks in transfer handling
- Deprecated Bukkit API usages
- Legacy version color formatting (simplified version display)
- Redundant permission checks in tab completion
Nah, this is a big work, honestly.
Not gonna give up of it.
alpha
Optimization
1.2-alpha26 февр. 2026 г.24Minecraft: 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, folia, paper, purpur, spigot
Что нового
### Changed
- More stable and safe action!
- The code is shorter than the old one.
- The plugin runs faster.
release
Folia!
1.1-rls25 февр. 2026 г.20Minecraft: 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Folia supported!
### Changed
- Optimized the size of JAR.
beta
1.8 ~ 1.12 Supports!
1.1-beta25 февр. 2026 г.19Minecraft: 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
### Added
- Supports 1.8.x ~ 1.12.x now!
alpha
Huge update!
1.1-alpha25 февр. 2026 г.17Minecraft: 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
### Added
- **Full configuration system** - Now with proper config.yml support
- **Auto-config fixing** - Missing config entries are automatically restored
- **Beautiful console logo** - ASCII art on startup (can be disabled in config)
- **Colored version display** - Alpha (red), Beta (gold), Release (green)
- **Multi-language support** - Messages fully customizable in config
- **Player name tab completion** - Tab completes online players and players with data files
- **Kick online players option** - Prevents data overwrite (configurable)
- **Asynchronous file operations** - No more server lag during transfers
- **Backup system** - Automatically creates .old files before overwriting
- **/xtransfer reload command** - Reload configuration without restart
### Changed
- **Version display format** - Now matches XGamemode style (XTransfer V1.1-alpha)
- **Command output** - All messages now from config file
- **UUID detection** - Better handling of premium/offline players
- **File copying** - Using NIO for better performance
### Fixed
- **NullPointerException in loadMessages()** - Messages map now properly initialized
- **Null version in onDisable()** - Added DISPLAY_VERSION for reliable shutdown
- **Config corruption** - Auto-fixes missing config values
- **Online player data overwrite** - Kicks player before transfer (optional)
release
The first version!
1.0-rls25 февр. 2026 г.28Minecraft: 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Что нового
Plugin done!
This is just a demo so it doesn't have multi language, config file and other extra features yet.
I will do it when I'm free and I want to code.