COWMODSКаталог модов

XTransfer

A tool that help you transfer players' data between names or UUIDs.

Автор: Wind_Blood4423обновлён 13 мая 2026 г.
УправлениеОптимизацияУтилиты

Описание

XTransfer Logo

0 What the heck is this?

A new plugin designed to transfer players' data between names or UUIDs. I didn't find any other plugin can handle this problem before, so I made my own one and uploaded it to here to help anyone who needs this feature for his/her server.

1 Features

1.1 Smart UUID Detection

Automatically detects UUIDs from:

  • Online players
  • usercache.json (for premium players)
  • Offline-mode UUID generation

1.2 Complete Data Transfer

Transfers all vanilla player data:

  • Player inventory and Ender Chest (playerdata/)
  • Statistics (stats/)
  • Advancements (advancements/) for 1.13+

1.3 Safe & Reliable

  • Creates automatic backups before overwriting
  • Kicks online players to prevent data overwrite (configurable)
  • Asynchronous file operations - no server lag!

2 Commands and Permission Nodes

2.1 Commands

- /xtransfer                          - Show version info
- /xtransfer transfer <old-name> <new-name>  - Transfer by player names
- /xtransfer transferuuid <old-uuid> <new-uuid> - Transfer by UUIDs
- /xtransfer list                      - List all player data files
- /xtransfer list <player>              - Show files for specific player
- /xtransfer reload                     - Reload configuration
- /xtransfer help                       - Show the help message

/xtf = /transfer = /xtransfer

2.2 Permission Nodes

- xtransfer.manage - Allows using all XTransfer commands (default: op)

3 Config

# Show logo when plugin enabled
show_logo: true

# World settings
world:
  # Manual world name (only used if auto-detect is false)
  name: "world"
  # Automatically detect world name from server
  auto-detect: true

# Transfer settings
transfer:
  # Transfer statistics files
  stats: true
  # Transfer advancements files (1.13+)
  advancements: true

  # Backup settings
  backup:
    # Create backup of existing files before overwriting
    create: true
    # Suffix for backup files
    suffix: ".old"

  # Online player handling
  # If true, kick online players before transfer
  # If false, show warning but continue
  kick-online-player: true

# Language settings
language: "en"

# Debug mode (enable only for troubleshooting)
debug: false

# Messages - You can customize all messages here
messages:
  # English messages
  en:
    no-permission: "&cYou don't have permission!"
    usage-header: "&9&lX&f&lTransfer &f&lHelp"
    usage-transfer: "&7/xtransfer transfer &f<old-name> <new-name>"
    usage-transferuuid: "&7/xtransfer transferuuid &f<old-uuid> <new-uuid>"
    usage-list: "&7/xtransfer list &f[player]"
    usage-reload: "&7/xtransfer reload"
    usage-help: "&7/xtransfer help"
    reload-success: "&a✓ Configuration reloaded!"
    transfer-start: "&eStarting async transfer..."

    looking-up: "&eLooking up UUIDs for &f{old} &eand &f{new}&e..."
    uuid-not-found: "&cCould not find UUID for: &f{name}"
    try-uuid: "&7Try using /xtransfer transferuuid with direct UUIDs"
    invalid-uuid: "&cInvalid UUID format! Use: /xtransfer transferuuid <old-uuid> <new-uuid>"
    uuid-example: "&7Example: 12345678-1234-1234-1234-123456789012"

    source-data-missing: "&cSource player {name} ({uuid}) has no data file!"

    transfer-from: "&7From: &f{name} &7({uuid})"
    transfer-to: "&7To: &f{name} &7({uuid})"
    transfer-file: "&7File: &f{file}"
    backup-created: "&7Backed up existing file to: &f{file}"
    transfer-success: "&a✓ Successfully transferred player data!"
    transfer-stats: "&7✓ Transferred stats file"
    transfer-advancements: "&7✓ Transferred advancements file"
    transfer-error: "&cError during transfer: {error}"

    folder-not-found: "&cPlayer data folder not found: {path}"
    source-not-found: "&cSource file not found: {file}"
    source-location: "&7Looked in: {path}"

    player-online-warning: "&e⚠ Warning: Player {player} is online! Data may be overwritten when they log out."
    player-kicked: "&e✓ Player {player} has been kicked for data transfer."
    kick-message: "&cYour data is being transferred. Please rejoin in a few seconds."

    no-files: "&eNo player data files found"
    list-header: "&6=== Player Data Files ({count}) ==="
    list-more: "&7... and {count} more"
    list-entry: "&7{name} &8- {uuid}"
    list-unknown: "&8{uuid} &7(unknown)"

    files-header: "&6=== Files for {player} ==="
    file-playerdata: "&7Player Data: {status}{size}"
    file-stats: "&7Stats: {status}"
    file-advancements: "&7Advancements: {status}"

  # Other language...

Последние версии

Все версии →
alpha

Improves

1.3-alpha
13 мая 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-rls
27 февр. 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-beta
26 февр. 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-alpha
26 февр. 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-rls
25 февр. 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-beta
25 февр. 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-alpha
25 февр. 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-rls
25 февр. 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.