26.10-ALPHA.001latestPlayerDataSync 26.10-ALPHA.001Sep 10, 2026 PlayerDataSyncReloaded 26.10-ALPHA.001 — Velocity
Alpha build. Compiles and passes the unit tests; not yet exercised on a live network. Test on a staging server first.
Distribution
- Now a separate download. Previously shipped inside the Paper jar asbundled/playerdatasync-velocity.jar.Added
- Save handshake:ServerPreConnectEventsendssave:to the current server and holds the switch until it answerssaved:<uuid>. The destination server can no longer read storage before the previous server's save committed — the cause of "old armor came back" after a switch. - Config fileplugins/playerdatasync/playerdatasync.properties, created on first start: -save_ack_timeout_ms(default2000): how long to wait for the confirmation;0= never wait. - A backend that never answers (older plugin, Fabric, Forge) is only waited on once; afterwards switches from it proceed immediately until it answers again. - Control messages from backends onpds:syncare consumed by the proxy and no longer forwarded to the client.Requirements
- Velocity 3.x - Backends running PlayerDataSyncReloaded 26.10-ALPHA.001 (Paper) for the handshake; older backends still work, just without the wait.26.9-ReleasePlayerDataSync 26.9-ReleaseSep 10, 2026 [26.9-Release] - 2026-09-10
Fixed
- Old armor / inventory coming back after a server switch: Three ordering races inSyncManagercould apply a stale record over the player's real state. (1) The join event, the Velocityload:message and the Redis notify each started their own DB load; two loads ran concurrently and whichever finished last won, even if it had read the record from before the previous server's save landed. Loads are now serialized per player: a load requested while one is in flight is queued and runs afterwards, so the newest record is always the one applied last. (2) Autosave, the proxysave:message and quit could all save while the join load was still pending, writing the server's local playerdata (the player's state from their last visit) over the record the previous server had just written. Saves are now refused until the stored record has been applied. (3) A late Redis reload re-applied a record the player already had, rolling back anything done since (e.g. newly equipped boots). Records now carrysavedAt; re-applying the same record within a session is skipped unless forced via/pds loadorPlayerDataSyncAPI#forceReload. - Failed SQL saves were reported as successful:SqlStorage#saveswallowedSQLException, soSyncManagercached the inventory hash (skipping the next save as "unchanged") and told other servers to reload. The future now fails, the error is counted, and the next save retries.Added
- Unit tests for theSyncManagerjoin/quit ordering (common/src/test), run viagradlew :common:test.26.8-ALPHAPlayerDataSync 26.8-ALPHAJul 30, 2026 Alpha. Everything below compiles and is code-reviewed, but the economy fix, the new location teleport and the Redis live sync have not been exercised against a running server with Vault, Redis or a real multi-server setup. Test on staging before production.
Fixed
- Dead config toggles:sync.attributes,sync.pdcandsync.flightwere declared inconfig.ymlbut never evaluated — switching them off did nothing. Same bug class as the economy fix in 26.7. - Item exclusions on Fabric:exclusions.itemswas stored and never read, so excluded items synced anyway. Bothminecraft:diamondand the Bukkit-styleDIAMONDspelling are accepted.Added
- Location sync now actually works. The position was previously captured and written to storage but never restored — no teleport existed anywhere in the plugin. Joining players are now teleported to their stored position. - Guarded bysync.location, which defaults to `false`. It only works when the destination server has a world of the same name, and turning it on by default would have started teleporting players on upgrade. - If the world is missing, the restore is skipped with a warning instead of dropping the player somewhere wrong. - Redis live sync completed. The subscribe handler parsed the incoming UUID and then did nothing — publishing worked, but no server ever acted on it. Receiving servers now reload that player if they are online locally. Messages carry a per-server node ID so a server ignores its own publishes rather than reloading over the save it just made. - Config support for Fabric. Fabric previously returned hardcoded defaults for every config lookup, so nosync.*toggle worked at all. Aplayerdatasync.propertiesfile is now generated in the Fabric config directory, using the same keys as the Bukkit config. Storage settings are read from it too, instead of the previously hardcoded (and non-functional) SQLite database. - More data synced on Fabric (MC 26.x): Ender Chest, potion effects and attributes.Known issues
- Fabric is not at parity with Paper. Advancements and statistics are not synced on any Fabric version. The 1.20 and 1.21 modules also still lack Ender Chest, potion effects and attributes — only 26.x gained those. Planned for 26.8-BETA. - On Fabric, use MariaDB, PostgreSQL or MongoDB. The MySQL driver is not bundled and mod loaders do not provide one. SQLite is not supported on any platform. - Forge is not built — ForgeGradle does not support Gradle 9, which the MC 26.x toolchain requires.26.7-ReleasePlayerDataSync 26.7-ReleaseJul 30, 2026 Fixed
- Economy sync (Vault): Balances were never actually synchronized.SyncManager#setEconomydiscarded the Vault provider, andPlayerData.balancewas neither read on quit nor applied on join — thesync.economyconfig toggle had no effect. Balances now transfer across servers, andsync.economy: falsegenuinely disables it.Added
- Paper 26.2 support: Newv26_2_R1version handler built againstpaper-api 26.2; server version detection recognizes26.2automatically. - Fabric 26.1 / 26.2 modules: New adapter modules targeting Minecraft 26.1 and 26.2.Changed
- Paper 26.1.2: Updated to the latest stable build (26.1.2.build.72-stable). - Build toolchain: Gradle 9.6.0; Fabric Loom 1.15.5 (1.20/1.21 lines) and 1.17.12 (26.x lines). - Fabric mappings: MC 26.x builds use Yarn1.21.11+build.6, since Mojang no longer publishes official mappings for 26.x. Fabric has aligned these names with Mojang's, so 26.x adapter code usesServerPlayer,CompoundTag,StreamCodec, andnet.minecraft.resources.Identifier.Known issues
- Forge is not built in this release. ForgeGradle 6.0.x refuses to run on Gradle 9+, and no compatible release exists yet. The Forge modules remain in the repository and can be re-enabled with-Ppds.enableForge=trueonce ForgeGradle supports Gradle 9.26.5.5.1-ALPHAPlayerDataSync 26.5.5.1-ALPHAMay 20, 2026 [26.5.5.1-ALPHA] - 2026-05-20
Added
- Fabric:fabric-api(0.92.2+1.20.1) so lifecycle and server-play networking APIs resolve at compile time;fabric.mod.jsondeclares afabric-apidependency. - Velocity: Gradle taskgeneratePluginBuildInfoemitsPluginBuildInfo.VERSIONso the@Pluginversion always matches the Gradle project version. - Modrinth / Fabric: Guide [pds-docs/modrinth-upload.md](pds-docs/modrinth-upload.md) (Paper vs Fabric JAR); Gradle task `checkFabricModMetadata` assertsfabric.mod.jsonexists in the remapped Fabric JAR; Fabric archive base name `playerdatasync-fabric` so it is not confused with the Paper plugin artifact. - Unified distribution JAR: The Paper *`PlayerDataSyncReloaded-.jar** (also copied to **build/libs/**) embeds **bundled/playerdatasync-velocity.jar**, **bundled/playerdatasync-fabric.jar**, and **bundled/playerdatasync-forge.jar** plus **bundled/README.txt`** — one download; extract sibling JARs for Velocity/Fabric/Forge (classes are not merged to avoid mapping clashes).Changed
- Gradle / bytecode targets:apiandcommonuse Java 17 (Fabric/Forge); `plugin` and Velocity use Java 21 so Paper 1.21.x can remap the shaded plugin (ASM does not accept class file 69). Nested *`:versions:** modules are set to **21** in **versions/build.gradle.kts** (they are not rootsubprojects`, so they previously picked up the toolchain default and emitted 69). - Velocity:velocity-apiupdated to 3.5.0-SNAPSHOT; Velocity→backend plugin messages use UTF-8 (StandardCharsets.UTF_8);ServerConnectedEventlog line uses `event.getServer().getServerInfo()` (Velocity 3 API). - Shadow plugin: Replacedcom.github.johnrengelman.shadow8.1.1 with `com.gradleup.shadow` 8.3.10 soshadowJarcan process modern class files when relocating (e.g. bundled jars). - Forge:META-INF/mods.tomlversion is expanded from Gradle (mod_version); Forgebuild.gradle.ktsno longer overrides rootversion/group. - Fabric:build.gradle.ktsno longer overrides rootversion/group(single version fromgradle.properties). - Gradle runtime: Configuration cache disabled ingradle.properties(ForgeGradle, Fabric Loom, and Shadow-related flows are not reliable with CC enabled); parallel and build caching remain enabled. - CI: Workflow runs `./gradlew :plugin:build` and uploads the unified *`build/libs/PlayerDataSyncReloaded-.jar** (includes **bundled/`** platform JARs).Fixed
- Bukkit version handlers:v1_20_R1andv26_1_R1VersionHandlerImplnow extend `BukkitBaseVersionHandler` and implement `capture` / `apply` with `PDSPlayer` (restores compatibility after removal ofBaseVersionHandler). - FabricPlayerDataSyncFabric:ServerPlayNetworkingglobal receiver is registered in `SERVER_STARTING` after storage/SyncManagersetup; SLF4J error logging for storage init; guards whensyncManageris not ready yet. - ForgePlayerDataSyncForge: storage init failures use Log4j instead ofprintStackTrace; packet and login handlers guard `syncManager == null`. - Multi-platform build: Resolved Gradle dependency variant mismatches (Fabric vsapi/commonJVM level). `v26_1_R1`:compileClasspathrequests JVM 25 so Paper 26paper-apiresolves while sources still compile with `--release 21`.Notes
- One JAR download:build/libs/PlayerDataSyncReloaded-*.jarcontains Paper + `bundled/` Velocity/Fabric/Forge JARs; Modrinth still needs the extracted platform files per loader (seepds-docs/modrinth-upload.md). - Modrinth: Use `bundled/playerdatasync-fabric.jar` (extracted from the distribution JAR) for the Fabric loader file — not the outer archive root (that is the Paper plugin with `plugin.yml` only). - Paper 1.21.x: The main plugin classes are built as Java 21 bytecode so the server’s PluginRemapper can read them. Run the server on Java 21+ as required by Paper 1.21. Deploy the JAR whose name matches `gradle.properties` `version` (e.g. `PlayerDataSyncReloaded-26.5.5.1-ALPHA.jar`); delete any older file such as `PlayerDataSyncReloaded-26.5.5-SNAPSHOT.jar` fromplugins/so Paper does not remap a stale build. The shaded jar excludes `META-INF/versions/`** so multi-release dependency layers (class file 69) are not shipped to the remapper.26.5.4-ReleasePlayerDataSync 26.5.4-ReleaseMay 5, 2026 [26.5.4-Release] - 2026-05-05
Fixed
- Build Process: Redirected final shaded JAR output to the root build directory for easier access. - Database Migration: Added automatic schema migration for SQL storage to fix "Unknown column" errors when upgrading from older versions. - Legacy Fallback: Implemented automatic fallback to the legacy data format if the new JSON format is missing in SQL storage.26.5.3-ReleasePlayerDataSync 26.5.3-ReleaseMay 5, 2026 [26.5.3-Release] - 2026-05-05
Added
- Database Migration: Added automatic schema migration for SQL storage to fix "Unknown column" errors when upgrading from older versions. - Legacy Fallback: Implemented automatic fallback to the legacy data format if the new JSON format is missing in SQL storage.Changed
- Paper Compatibility: Updated NMS support for the stable Paper 26.1.2 release. - Dependency Management: Updated internal version modules to target the latest stable API builds.26.5.2-ReleasePlayerDataSync 26.5.2-ReleaseMay 3, 2026 [26.5.2-Release] - 2026-05-03
Changed
- Paper Compatibility: Updated NMS support for the stable Paper 26.1.2 release. - Dependency Management: Updated internal version modules to target the latest stable API builds.26.5.1-ReleasePlayerDataSync 26.5.1-ReleaseMay 1, 2026 [26.5.1-Release] - 2026-05-01
Fixed
- Thread Safety: ResolvedIllegalStateExceptionon Paper/Purpur servers wherePlayerDataSaveEventwas incorrectly triggered on the main thread while marked as an asynchronous event. Both Save and Load events are now synchronous to ensure full compatibility with the Bukkit threading model.26.5-ReleasePlayerDataSync 26.5-ReleaseApr 27, 2026 [26.5-Release] - 2026-04-27
Added
- API Extensibility: AddedextraDatamap toPlayerDatafor third-party plugin data synchronization. - Save Cancellation:PlayerDataSaveEventnow implementsCancellable, allowing plugins to prevent data from being saved under specific conditions. - Granular Sync Controls: Added new configuration options to disable syncing for Potion Effects, Food, GameMode, Advancements, and Statistics. - Improved Version Detection: Better handling for Minecraft 1.21.1 and future sub-versions.Changed
- Banner Update: Refreshed the startup banner with new colors and "Expansion Update" subtitle. - Performance: Minor internal optimizations for event handling.Fixed
- Potential edge case where data might save during an invalid state.26.4-ReleasePlayerDataSync 26.4-ReleaseApr 18, 2026 [26.4-Release] - 2026-04-18
Added
- Storage Migrator: Full release of the migration tool for seamless transitions between SQL and NoSQL. - Zipped Backup System: Reliable export/import system for disaster recovery. - Legacy Migration Support: Bridge for users coming from the original PlayerDataSync version. - Vault Economy Sync: Stable cross-network balance synchronization. - Advanced Sync Features: Full support for PDC, Attributes, Statistics, and Advancements. - Auto-Save System: Background saving task to prevent data loss. - Exclusion System: World and item blacklists for granular control.Changed
- Modernized Version Support: Dropped legacy support. Now exclusively supporting 1.20, 1.21, and 26.1+. - Performance Optimizations: GZIP compression and dedicated thread pools are now enabled by default. - Inventory Hashing: Intelligent skip mechanics for unchanged data.Fixed
- All issues discovered during the Beta phase, including NMS fallback and thread safety.26.4-BETAPlayerDataSync 26.4-BETAApr 11, 2026 [26.4-BETA] - 2026-04-12
Added
- Storage Migrator: Added a powerful tool to move data between any supported database backend (MySQL, MariaDB, PostgreSQL, MongoDB). - Zipped Backup System: Added/pds backup export/importfor portable data management and safety. - Legacy Migration Support: Added specialized support to migrate data from the old PlayerDataSync version to the new Reloaded format. - Vault Economy Sync: Full synchronization for player balances across the network. - Advanced Sync Features: Added support for Persistent Data Containers (PDC), modern Attributes, Statistics, and Advancements. - Auto-Save System: Automated background saving of all online players to prevent data loss on server crashes. - Exclusion System: Added blacklists for specific worlds and items (by material) to prevent them from being synchronized. - Management Commands: Added/pds reloadfor hot-reloading connections and/pds migratefor data transfers. - Real-time Feedback: Configurable chat messages for players during synchronization events. - Debug Mode: Detailed logging for easier troubleshooting in complex environments.Changed
- Modernized Version Support: Dropped legacy support for Minecraft 1.8 through 1.19. Now exclusively supporting 1.20, 1.21, and 26.1+. - Massive Performance Boost: - Integrated GZIP Compression for serialized data, reducing storage size and network load by up to 90%. - Introduced Dedicated Thread Pools for all database I/O to ensure the main server thread is NEVER blocked. - Added Inventory Hashing to skip redundant database writes if data hasn't changed. - Simplified Architecture: Refactored the core logic into a cleaner multi-module system. - Banner: Updated the startup console banner for a premium look.Fixed
- Fixed internalAttributeconstant name changes between 1.20 and 1.21. - FixedNoClassDefFoundErroroccurring when specific version modules were missing. - Fixed thread safety issues in MongoDB and SQL storage handlers. - Fixed reflection issues forPersistentDataContainercompatibility across 1.20/1.21.26.4.1-SNAPSHOTPlayerDataSync 26.4.1-SNAPSHOTApr 11, 2026 [26.4.1-SNAPSHOT] - 2026-04-11
Added
- Initial Reload Release: Complete rewrite and modernization of the sync engine. - Java 25 Support: Leveraged the latest Java features for performance. - Multi-Database Support: Added drivers for MySQL, MariaDB, PostgreSQL, and MongoDB. - Redis Pub/Sub Sync: Implemented ultra-fast synchronization for high-traffic networks. - Folia Compatibility: Support for region-based multithreading. - AES Encryption: Secure player data storage and transmission. - Expanded Sync Options: - Inventory and Ender Chest. - Health, Food, and Experience. - Potion Effects. - Advancements and Statistics. - Game Mode and Flight status. - Location tracking across instances. - Attributes and Persistent Data Container (PDC) data. - New Command System: Improved/playerdatasync(aliases:/pds,/pdasync). - Improved Config: New structuredconfig.ymlwith clear documentation for all settings.26.4-SNAPSHOTPlayerDataSync 26.4-SNAPSHOTMar 29, 2026
The "Reloaded" version is a complete rewrite of the original PlayerDataSync plugin, designed for better performance, modern server support, and extensibility. ---[Reloaded v26.4-SNAPSHOT] - 2026-03-28
Added
- Completely new architecture for better stability and lower performance impact.Core Engine Rewrite
- Integrated HikariCP for high-performance connection pooling. - MySQL/MariaDB support for cross-server synchronization.Improved Database Handling
- Inventories, Armor, and Ender Chests (Base64 serialized) - Health (including Max Health and Scale) - Food Level, Saturation, and Exhaustion - Experience (Level, Progress, Total Exp) and Score - GameMode, Flight status, and Location - New: Potion Effects, Statistics, and Persistent Data Container (PDC)Comprehensive Data Synchronization
- Native Folia support with regionalized scheduling - Compatible with Paper, Spigot, and Bukkit (1.8 - 1.21+)Modern Server Support
- Multi-language support with dedicated translation files - Included languages: - German - English - Chinese (TW) - Dutch - Korean - Malay - and moreInternationalization (i18n)
- ColorUtils: Support for modern HEX colors and legacy formatting - Reflection API: Cross-version compatibility handlingEnhanced Utilities
- Integrated bStats to track plugin usage and statistics ---Metrics
- Migrated storage format to JSON for better extensibility - Optimized save tasks with configurable intervals (Changed
auto-save-ticks) - Improved join/quit logic to prevent data loss or race conditions ---
- Resolved many legacy bugs associated with NBT serialization - Fixed async database operations to prevent main-thread lag ---Fixed
Powered by CraftingStudioPro
26.3.4-SNAPSHOTPlayerDataSync 26.3.4-SNAPSHOTMar 11, 2026 [PlayerDataSync-26.3.4-SNAPSHOT] - 2026-03-11
- Legacy Minecraft Support (1.8-1.16): Resolved multiple critical issues for older server versions. - Java 8 Compatibility: FixedFixed & Improved
NoSuchMethodError: String.isBlank()by replacing it with Java 8 compatible alternatives inMessageManager. - FastStats Isolation: Isolated Java 17-dependent metrics library to preventUnsupportedClassVersionErroron Java 8 environments. - JDBC Driver Fixes: - Implemented explicit driver registration to solve "No suitable driver found" errors in shaded environments (PaperSpigot 1.8.8). - FixedAbstractMethodError: Connection.isValid()by adding safety wrappers for legacy JDBC drivers (SQLite). - Configuration Robustness: - Fixed an issue whereconfig.ymlwas being stripped of content and comments on older Bukkit versions by reducing unnecessary saves. - Implemented explicit UTF-8 loading for configuration files to prevent character encoding issues on Windows servers. - Enhanced configuration migration and initialization to correctly merge defaults without overwriting existing user settings. - Stability and Performance: - Fixed a race condition where default configurations were not being saved to disk before being reloaded during the first startup. - Consolidated maintenance mode and version checking logs for better readability.26.3.3-SNAPSHOTPlayerDataSync 26.3.3-SNAPSHOTMar 10, 2026 [PlayerDataSync-26.3.3-SNAPSHOT] - 2026-03-10
- Maintenance Mode: Pause all data syncing withNew Features
/sync maintenance <on|off>. Useful for database migrations or emergency fixes. - Management GUI: Use/sync menufor a visual way to toggle sync options and manage the plugin. - Performance Profiler: Use/sync profileto track average and maximum save/load times for better performance monitoring.
- Java Compatibility: Downgraded default Java target to Java 8 to ensure full compatibility with Minecraft 1.8.8 through 1.16.5 (Purpur) and resolved "Unsupported class file major version 65" errors. - Build Configuration: Removed conflictingFixed
activeByDefaultprofile to prevent accidental Java 21 builds.
- Hardcoded API Key: Added a hardcoded API key (Update Checker
CSP-PDS-...) for streamlined server-to-API authentication. - Improved Caching: Implemented a 1-hour cache for update metadata to reduce unnecessary API requests. - Manual Check Command: Added/sync checkupdatecommand to manually trigger an update check (bypasses cache). - Silent Reloading: Added simplified version check handling that can be called asynchronously without blocking the main thread.26.3.2-SNAPSHOTPlayerDataSync 26.3.2-SNAPSHOTMar 7, 2026 [PlayerDataSync-26.3.2-SNAPSHOT] - 2026-03-07
- API Migration: Fully migrated to CraftingStudio Pro API v1 using modernUpdate Checker
HttpClient. - API Key Support: Added hardcoded API key support directly inUpdateChecker.javafor streamlined authentication. - Improved Reliability: Replaced legacyHttpURLConnectionwith asynchronous requests and better error handling. - Enhanced URLs: Updated download and plugin info links to the new category-based structure.26.3.1-SNAPSHOTPlayerDataSync 26.3.1-SNAPSHOTMar 5, 2026 Update – PlayerDataSync 26.3.1-SNAPSHOT
A small update has been released for PlayerDataSync.Changes
- Fixed an issue with the version display - Corrected the plugin version number Some users were seeing the incorrect version number 2025.03. This version number was not correct. With this update, the version has been corrected to 26.3.1-SNAPSHOT. Please make sure to update to the latest version to avoid confusion with incorrect version information.26.3PlayerDataSync v26.3Mar 4, 2026 [PlayerDataSync-26.3-RELEASE] - 2026-03-04
- MongoDB: Fixed MongoDB errors / MongoDB-Fehler behoben.Fixed
26.2-RELEASEPlayerDataSync 26.2-RELEASEFeb 20, 2026 [PlayerDataSync-26.2-RELEASE] - 2026-02-20
- Fixed an edge-case where spent XP (for example after enchanting) could be restored on relog due to stale total XP capture. - Added immediate autosave hooks for XP/level changes and enchanting to persist XP updates right away. - Added new config toggleXP Sync Fixes
autosave.on_xp_change(default:true) for instant XP persistence.
- Kept automatic schema update behavior on startup and runtime upgrade attempts for safe database migrations. - Prepared compatibility messaging/docs for upcoming 26.1/26.2 cycle.Database & Compatibility
1.3.0-RELEASEPlayerDataSync 1.3.0-RELEASEFeb 13, 2026 [1.3.0-RELEASE] - 2026-02-13
- Complete rewrite of version check flow with robust semantic comparison for tags likeReworked Update Checker
-RELEASE/-BETA- Uses configurable request timeout (update_checker.timeout) for reliable network behavior - Smarter latest-version detection avoids false positive update notifications
- Optimized XP apply flow with bounded correction attempts for more stable cross-version results - Improved mismatch handling to prevent repeated over/under-correction on join/load - More precise debug and warning logs for diagnosing XP sync edge-casesXP Synchronization Improvements
- Optimized balance transfer with normalized precision for smooth and reliable Vault synchronization - Added post-transfer verification and auto re-adjustment attempts to reduce desyncs - Improved fallback logic when provider-specificEconomy Sync Optimization
setBalanceimplementations are inconsistent1.2.9-RELEASEPlayerDataSync 1.2.9-RELEASEJan 25, 2026 [1.2.9-RELEASE] - 2026-01-25
Custom-Enchantment-Support & Database Upgrade / Custom-Enchantment-Support & Datenbank-Upgrade
- Database Truncation Error (Critical Fix) / Datenbank-Truncation-Fehler (Critical Fix): - EN: Fixes "Data too long for column" errors with large inventories - DE: Behebt "Data too long for column" Fehler bei großen Inventaren -Fixed
EN: Automatic upgrade from
TEXTtoLONGTEXTforinventory,enderchest,armor, andoffhandcolumns -DE: Automatisches Upgrade von
TEXTzuLONGTEXTfürinventory,enderchest,armorundoffhandSpalten -EN: Now supports inventories with many custom enchantments (e.g., ExcellentEnchants) -
DE: Unterstützt jetzt Inventare mit vielen Custom-Enchantments (z.B. ExcellentEnchants) -
EN: Upgrade is performed automatically on server start -
DE: Upgrade wird automatisch beim Server-Start durchgeführt -
EN: Runtime upgrade attempt on truncation errors -
DE: Runtime-Upgrade-Versuch bei Truncation-Fehlern -
EN: Improved error messages with solution suggestions -
DE: Verbesserte Fehlermeldungen mit Lösungsvorschlägen -
EN: Fixes issues with large inventories and custom enchantments -
DE: Behebt Probleme mit großen Inventaren und Custom-Enchantments - Custom-Enchantment Deserialization / Custom-Enchantment-Deserialisierung: - EN: Robust error handling for custom enchantments - DE: Robuste Fehlerbehandlung für Custom-Enchantments -
EN: Improved detection of custom enchantment errors (e.g.,
minecraft:venom) -DE: Verbesserte Erkennung von Custom-Enchantment-Fehlern (z.B.
minecraft:venom) -EN: Items are skipped instead of causing plugin crashes -
DE: Items werden übersprungen statt Plugin-Absturz zu verursachen -
EN: Data remains preserved in the database -
DE: Daten bleiben in der Datenbank erhalten -
EN: Detailed logging with enchantment names -
DE: Detailliertes Logging mit Enchantment-Namen -
EN: Support for ExcellentEnchants and similar plugins -
DE: Unterstützung für ExcellentEnchants und ähnliche Plugins -
EN: Prevents crashes with unrecognized custom enchantments -
DE: Verhindert Abstürze bei nicht erkannten Custom-Enchantments - Stale Player Data / Veraltete Spielerdaten: - EN: Fixes issue with outdated player data - DE: Behebt Problem mit nicht aktualisierten Spielerdaten -
EN: Database upgrade enables successful saves -
DE: Datenbank-Upgrade ermöglicht erfolgreiche Speicherungen -
EN: Improved error handling prevents data loss -
DE: Verbesserte Fehlerbehandlung verhindert Datenverlust -
EN: Automatic recovery after database upgrade -
DE: Automatische Wiederherstellung nach Datenbank-Upgrade
- Custom-Enchantment Synchronization / Custom-Enchantment-Synchronisation: - EN: Full support for custom enchantments - DE: Vollständige Unterstützung für Custom-Enchantments -Added
EN: Preservation of all NBT data including custom enchantments during serialization -
DE: Erhaltung aller NBT-Daten inklusive Custom-Enchantments beim Serialisieren -
EN: Refresh mechanism after loading inventories (2-tick delay) -
DE: Refresh-Mechanismus nach dem Laden von Inventaren (2-Tick-Delay) -
EN: Explicit re-setting of items so plugins can process enchantments -
DE: Explizites Neusetzen von Items, damit Plugins Enchantments verarbeiten können -
EN: Works for main inventory, armor, offhand, and enderchest -
DE: Funktioniert für Hauptinventar, Rüstung, Offhand und Enderchest -
EN: Supports plugins like ExcellentEnchants that use custom enchantments -
DE: Unterstützt Plugins wie ExcellentEnchants, die Custom-Enchantments verwenden - Deserialization Statistics & Monitoring / Deserialisierungs-Statistiken & Monitoring: - EN: Comprehensive monitoring system - DE: Umfassendes Monitoring-System -
EN: Counters for custom enchantment errors, version compatibility errors, and other errors -
DE: Zähler für Custom-Enchantment-Fehler, Versionskompatibilitäts-Fehler und andere Fehler -
EN:
getDeserializationStats()method for statistics -DE:
getDeserializationStats()Methode für Statistiken -EN:
resetDeserializationStats()method to reset statistics -DE:
resetDeserializationStats()Methode zum Zurücksetzen -EN: Integration into
/sync cachecommand -DE: Integration in
/sync cacheBefehl -EN: Detailed error logging with enchantment names -
DE: Detaillierte Fehlerprotokollierung mit Enchantment-Namen -
EN: Admins can now easily monitor custom enchantment issues -
DE: Admins können jetzt Probleme mit Custom-Enchantments einfach überwachen - Improved Error Handling / Verbesserte Fehlerbehandlung: - EN: Extended error detection and handling - DE: Erweiterte Fehlererkennung und -behandlung -
EN: Automatic extraction of enchantment names from error messages -
DE: Automatische Extraktion von Enchantment-Namen aus Fehlermeldungen -
EN: Detailed error chain analysis (up to 3 levels) -
DE: Detaillierte Fehlerketten-Analyse (bis zu 3 Ebenen) -
EN: Contextual error messages with solution suggestions -
DE: Kontextuelle Fehlermeldungen mit Lösungsvorschlägen -
EN: Better detection of various error types (IllegalStateException, NullPointerException, etc.) -
DE: Bessere Erkennung verschiedener Fehlertypen (IllegalStateException, NullPointerException, etc.) -
EN: Pattern-based detection of custom enchantment errors -
DE: Pattern-basierte Erkennung von Custom-Enchantment-Fehlern
- Database Schema / Datenbank-Schema: - EN: Automatic upgrade for existing installations - DE: Automatisches Upgrade für bestehende Installationen -Changed
EN:
inventory: TEXT → LONGTEXT (max. ~4GB instead of ~65KB) -DE:
inventory: TEXT → LONGTEXT (max. ~4GB statt ~65KB) -EN:
enderchest: TEXT → LONGTEXT -DE:
enderchest: TEXT → LONGTEXT -EN:
armor: TEXT → LONGTEXT -DE:
armor: TEXT → LONGTEXT -EN:
offhand: TEXT → LONGTEXT -DE:
offhand: TEXT → LONGTEXT -EN: Upgrade is performed automatically on server start -
DE: Upgrade wird beim Server-Start automatisch durchgeführt -
EN: Existing data is preserved, no data migration needed -
DE: Bestehende Daten bleiben erhalten, keine Datenmigration nötig - EditorIntegration Removed / EditorIntegration entfernt: - EN: Preparation for website update - DE: Vorbereitung für Website-Update -
EN: EditorIntegrationManager completely removed -
DE: EditorIntegrationManager komplett entfernt -
EN: All editor-related commands removed -
DE: Alle Editor-bezogenen Befehle entfernt -
EN: Code cleanup for future editor integration -
DE: Code-Bereinigung für zukünftige Editor-Integration -
EN: New editor integration will be added in a future version -
DE: Neue Editor-Integration wird in zukünftiger Version hinzugefügt
#### Database Upgrade Process / Datenbank-Upgrade-Prozess EN: The plugin automatically performs an upgrade of database columns on startup: DE: Das Plugin führt beim Start automatisch ein Upgrade der Datenbank-Spalten durch: 1. EN: Check: Verifies the current data type of each column DE: Prüfung: Überprüft den aktuellen Datentyp jeder Spalte 2. EN: Upgrade: ConvertsTechnical Details
TEXTtoLONGTEXTif necessary DE: Upgrade: KonvertiertTEXTzuLONGTEXTwenn nötig 3. EN: Logging: Log1.2.8-RELEASEPlayerDataSync 1.2.8-RELEASEJan 22, 2026 1.2.7-RELEASEPlayerDataSync 1.2.7-RELEASEJan 3, 2026 [1.2.7-RELEASE] - 2026-01-03
This release includes critical bug fixes for XP synchronization and Vault economy, plus a new Respawn to Lobby feature.Critical Fixes & New Features
Fixed
- Issue #45 - XP & Level Synchronization (Critical Fix): Complete rewrite of experience synchronization -Replaced unreliable
setTotalExperience()withgiveExp()as primary method -giveExp()is more reliable across all Minecraft versions (1.8-1.21.11) -Better error handling and verification with detailed logging -
Automatic correction if experience doesn't match expected value -
Prevents XP sync failures on all supported versions -
Improved level calculation and synchronization -
Fixes Issue #43, #45 and XP sync problems across version range -
Detailed logging for debugging XP sync issues - Issue #46 - Vault Balance de-sync on server shutdown: Fixed economy balance not being saved during shutdown -
Enhanced shutdown save process to ensure Vault economy is available -
Reconfigure economy integration before shutdown save -
Added delay to ensure Vault is fully initialized before saving -
Force balance refresh before save to get latest balance -
Better error handling and logging during shutdown -
Prevents economy balance loss on server restart -
Fixes Issue #46: Vault Balance de-sync on server shutdown
1.2.8-BETAPlayerDataSync 1.2.8-BETADec 31, 2025 [1.2.8-BETA] - 2025-12-29
This release includes significant improvements, API migrations, and enhanced compatibility features.Big Update - Major Improvements & API Migration
Changed
- Update Checker: Complete migration to CraftingStudio Pro API -Migrated from SpigotMC Legacy API to CraftingStudio Pro API -
New API endpoint:
https://craftingstudiopro.de/api/plugins/playerdatasync/latest-Uses plugin slug (
playerdatasync) instead of resource ID -Improved JSON response parsing using Gson library -
Better error handling for HTTP status codes (429 Rate Limit, etc.) -
Enhanced update information with download URLs from API response -
API Documentation: https://www.craftingstudiopro.de/docs/api - Plugin API Version: Updated to 1.13 for better modern API support - Minimum required Minecraft version: 1.13 - Still supports versions 1.8-1.21.11 with automatic compatibility handling - Improved NamespacedKey support and modern Material API usage
Fixed
- Version Compatibility: Fixed critical GRAY_STAINED_GLASS_PANE compatibility issue -Prevents fatal error on Minecraft 1.8-1.12 servers -
Automatic version detection and Material selection -
Uses
STAINED_GLASS_PANEwith durability value 7 for older versions (1.8-1.12) -Uses
GRAY_STAINED_GLASS_PANEfor modern versions (1.13+) -Filler item in inventory viewer now works correctly across all supported versions - Inventory Synchronization: Enhanced inventory sync reliability -
Added
updateInventory()calls after loading inventory, armor, and offhand -Improved client synchronization for all inventory types -
Better inventory size validation (normalized to 36 slots for main inventory) -
Improved enderchest size validation (normalized to 27 slots) -
Better armor array normalization (ensures exactly 4 slots) - ItemStack Validation: Enhanced ItemStack sanitization and validation -
Improved validation of item amounts (checks against max stack size) -
Better handling of invalid stack sizes (clamps to max instead of removing) -
Improved AIR item filtering -
More robust error handling for corrupted items - Logging System: Complete logging overhaul -
Replaced all
System.err.println()calls with proper Bukkit logger -Replaced all
printStackTrace()calls with properlogger.log()calls -Better log levels (WARNING/SEVERE instead of stderr for compatibility issues) -
More consistent error messages across the codebase -
Stack traces now properly logged through plugin logger -
Improved logging for version compatibility issues
Improved
- Code Quality: Significant improvements to error handling and resource management -Comprehensive exception handling with proper stack trace logging -
Better debug logging throughout inventory operations -
Improved client synchronization after inventory changes -
Better resource management and cleanup -
Enhanced error diagnostics throughout the codebase - Performance: Optimizations for inventory operations -
Better item validation prevents unnecessary operations -
Improved error recovery mechanisms -
Enhanced memory management
Technical Details
- API Migration: Complete rewrite of UpdateChecker class - Old: SpigotMC Legacy API (plain text response) - New: CraftingStudio Pro API (JSON response with Gson parsing) - Improved error handling for network issues and rate limits - Compatibility: Maintained support for Minecraft 1.8-1.21.11 - Version-based feature detection and automatic disabling - Graceful degradation for unsupported features on older versions - Comprehensive version compatibility checking at startupBreaking Changes
Plugin API Version: Changed from
1.8to1.13- Plugins compiled with this version require at least Minecraft 1.13 - Server administrators using 1.8-1.12 should continue using previous versions - Automatic legacy conversion may still work, but not guaranteedMigration Guide
If upgrading from 1.2.6-RELEASE or earlier: 1. No configuration changes required 2. Update checker will now use CraftingStudio Pro API 3. All existing data is compatible 4. Recommended to test on a staging server first1.2.6-RELEASEPlayerDataSync 1.2.6-RELEASEDec 31, 2025 [1.2.6-RELEASE] - 2025-12-29
Changed
- Update Checker: Migrated to CraftingStudio Pro API - Updated from SpigotMC API to CraftingStudio Pro API (https://craftingstudiopro.de/api) - Now uses plugin slug instead of resource ID - Improved JSON response parsing for better update information - Better error handling for rate limits (429 responses) - API endpoint:/api/plugins/playerdatasync/latestFixed
- Version Compatibility: Fixed GRAY_STAINED_GLASS_PANE compatibility issue for Minecraft 1.8-1.12 - Added version check to use STAINED_GLASS_PANE with durability value 7 for older versions - Prevents fatal error when loading plugin on 1.8-1.12 servers - Filler item in inventory viewer now works correctly across all supported versions1.2.7-ALPHAPlayerDataSync 1.2.7-ALPHADec 30, 2025 [1.2.7-ALPHA] - 2025-12-29
Fixed
- Version Compatibility: Fixed GRAY_STAINED_GLASS_PANE compatibility issue for Minecraft 1.8-1.12 - Added version check to use STAINED_GLASS_PANE with durability value 7 for older versions - Prevents fatal error when loading plugin on 1.8-1.12 servers - Filler item in inventory viewer now works correctly across all supported versions1.2.6-ALPHAPlayerDataSync 1.2.6-ALPHADec 30, 2025 [1.2.6-ALPHA] - 2025-12-29
Improved
- Inventory Synchronization: Significantly improved inventory sync reliability - AddedupdateInventory()call after loading inventory, armor, and offhand to ensure client synchronization - Improved inventory size validation (normalized to 36 slots for main inventory) - Improved enderchest size validation (normalized to 27 slots) - Better armor array normalization (ensures exactly 4 slots) - Enhanced error handling with detailed logging and stack traces - Added debug logging for successful inventory loads - ItemStack Validation: Enhanced ItemStack sanitization - Improved validation of item amounts (checks against max stack size) - Better handling of invalid stack sizes (clamps to max stack size instead of removing) - Improved AIR item filtering - More robust error handling for corrupted items - Logging System: Improved logging consistency - Replaced allSystem.err.println()calls with proper Bukkit logger - Replaced allprintStackTrace()calls with proper logger.log() calls - Better log levels (WARNING instead of stderr for compatibility issues) - More consistent error messages across the codebase - Improved logging for version compatibility issues - Stack traces now properly logged through plugin logger instead of printStackTrace() - Code Quality: Further improvements to error handling - Added comprehensive exception handling with stack traces - Better debug logging throughout inventory operations - Improved client synchronization after inventory changes - Better resource management and cleanup1.2.5-SNAPSHOTPlayerDataSync 1.2.5-SNAPSHOTDec 30, 2025 [1.2.5-SNAPSHOT] - 2025-12-29
Fixed
- Issue #45 - XP Sync Not Working: Fixed experience synchronization not working - ImprovedapplyExperience()method with proper reset before setting experience - Added verification to ensure experience is set correctly - Added fallback mechanism usinggiveExp()ifsetTotalExperience()doesn't work - Better error handling with detailed logging and stack traces - Now works reliably across all Minecraft versions (1.8-1.21.11)Improved
- Code Quality: Fixed deprecated method usage and improved compatibility - Replaced deprecatedURL(String)constructor withURI.toURL()for better Java 20+ compatibility - Replaced deprecatedPotionEffectType.getName()withgetKey().getKey()for better compatibility - ImprovedPotionEffectType.getByName()usage with NamespacedKey fallback - Replaced deprecatedgetMaxHealth()with Attribute system where available - ImprovedgetOfflinePlayer(String)usage with better error handling - Added@SuppressWarningsannotations for necessary deprecated method usage - Cleaned up unused imports and improved code organization1.2.4-SNAPSHOTPlayerDataSync 1.2.4-SNAPSHOTDec 29, 2025 [1.2.4-SNAPSHOT] - 2025-12-29
Added
- Extended Version Support: Full compatibility with Minecraft 1.8 to 1.21.11 - Comprehensive version detection and compatibility checking - Maven build profiles for all major Minecraft versions (1.8, 1.9-1.16, 1.17, 1.18-1.20, 1.21+) - Automatic feature detection and disabling based on server version - VersionCompatibility utility class for runtime version checks - Project Structure Reorganization: Complete package restructuring - Organized code into logical packages:core,database,integration,listeners,managers,utils,commands,api- Improved code maintainability and organization - All imports and package declarations updated accordingly - Version-Based Feature Management: Automatic feature disabling - Offhand sync automatically disabled on 1.8 (requires 1.9+) - Attribute sync automatically disabled on 1.8 (requires 1.9+) - Advancement sync automatically disabled on 1.8-1.11 (requires 1.12+) - Features are checked and disabled during plugin initializationFixed
- Issue #43 - Experience Synchronization Error: Fixed experience synchronization issues - Changed from reset +giveExp()to directsetTotalExperience()method - Added validation for negative experience values - More reliable experience restoration across all versions - Issue #42 - Vault Reset on Server Restart: Fixed economy balance not being restored on server restart - Economy integration is now reconfigured during shutdown to ensure availability - Balance restoration with 5-tick delay and retry mechanism - Improved Vault provider availability checking - Issue #41 - Potion Effect on Death: Fixed potion effects being restored after death - Effects are only restored if player is not dead or respawning - Added death/respawn state checking before effect restoration - Effects are properly cleared on death as expected - Issue #40 - Heartbeat HTTP 500: Improved error handling for HTTP 500 errors - Enhanced error handling with detailed logging - Specific error messages for different HTTP status codes (400, 401, 404, 500+) - Connection timeout and socket timeout handling - Better debugging information for API issuesChanged
- Minecraft Version Support: Extended from 1.20.4-1.21.9 to 1.8-1.21.11 - Default Java version set to 8 for maximum compatibility - Maven profiles for different Java versions (8, 16, 17, 21) - Plugin API version set to 1.8 (lowest supported version) - Build System: Enhanced Maven configuration - Compiler plugin now uses variables for source/target versions - Multiple build profiles for different Minecraft versions - Proper Java version handling per Minecraft version - Code Organization: Complete package restructure -core/: Main plugin class (PlayerDataSync) -database/: Database management (DatabaseManager, ConnectionPool) -integration/: Plugin integrations (EditorIntegrationManager, InventoryViewerIntegrationManager) -listeners/: Event listeners (PlayerDataListener, ServerSwitchListener) -managers/: Manager classes (AdvancementSyncManager, BackupManager, ConfigManager, MessageManager) -utils/: Utility classes (InventoryUtils, OfflinePlayerData, PlayerDataCache, VersionCompatibility) -commands/: Command handlers (SyncCommand) -api/: API and update checker (UpdateChecker) - Version Compatibility Checking: Enhanced startup version validation - Detects Minecraft version range (1.8 to 1.21.11) - Logs feature availability based on version - Provides warnings for unsupported versions - Tests critical API methods with version checksTechnical Details
- Build Profiles: -mvn package -Pmc-1.8for Minecraft 1.8 (Java 8) -mvn package -Pmc-1.9through-Pmc-1.16for 1.9-1.16 (Java 8) -mvn package -Pmc-1.17for Minecraft 1.17 (Java 16) -mvn package -Pmc-1.18through-Pmc-1.20for 1.18-1.20 (Java 17) -mvn package -Pmc-1.21for Minecraft 1.21+ (Java 21) - Default - Code Quality: Improved error handling and version compatibility - Resource Management: Better cleanup and memory management - Exception Handling: More specific error messages and recovery mechanismsCompatibility
- Minecraft 1.8: Full support (some features disabled) - Minecraft 1.9-1.11: Full support (advancements disabled) - Minecraft 1.12-1.16: Full support - Minecraft 1.17: Full support - Minecraft 1.18-1.20: Full support - Minecraft 1.21-1.21.11: Full support1.2.3-SNAPSHOTPlayerDataSync 1.2.3-SNAPSHOTDec 23, 2025 PlayerDataSync 1.2.3-SNAPSHOT
Added: Support for Minecraft 1.21.11* Improved: * Performance optimizations * Various minor improvements and bug fixes1.2.2-SNAPSHOTPlayerDataSync 1.2.2-SNAPSHOTDec 17, 2025 PlayerDataSync Changelog
Added - Inventory viewer integration support. - Player table data now included in editor snapshot. - Editor integration can be used without API key. - Added web editor command and API integration. Fixed - Resolved duplicate lambda variable issue in advancement sync. - Minor fixes and adjustments from previous snapshot. Changed - Updated compatibility checks for latest Minecraft versions. - Plugin now embeds editor API configuration. - Other minor fixes and improvements (#53, #54, #55, #56, #57, #58).1.2.1-SNAPSHOTPlayerDataSync 1.2.1-SNAPSHOTDec 17, 2025 Changelog
####Version 1.2.1-SNAPSHOT
Commits - #58: Add database snapshot data to editor API payload → Include player table data in editor snapshot - #57: Allow editor integration without API key (Merge) → Implementation for keyless editor integration - #56: Fix duplicate lambda parameter in advancement sync (Merge) → Resolved duplicate lambda variable in advancement sync - #55: Embed editor API configuration in plugin (Merge) → Implementation for embedded editor API configuration - #54: Add web editor command and API integration (Merge) → Added in-game web editor command and backend API integration - #53: Ensure plugin metadata follows project version → Aligned
plugin.ymlversion with project version (pom filtering) - #52: Bump project version to1.2.1-SNAPSHOT(pom) ---
- New: Added in-game Web Editor command and API integration (now works without API key) - Data Export: Editor snapshots now include complete player and table data - Fixes: Resolved duplicate lambda parameter issue in advancement sync - Meta: Unified versioning betweenHighlights
pom.xmlandplugin.yml→1.2.1-SNAPSHOT
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
Chunky
Pre-generates chunks, quickly and efficiently
20.8MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta
LuckPerms
A permissions plugin/mod for Minecraft servers.
2.8MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta
SkinsRestorer
🎨 Ability to restore/change skins on servers! (Offline and Online Mode)
1.6MSueta