mc-data-bridge icon

mc-data-bridge -----

Seamlessly sync player inventory, health, XP, and effects across your BungeeCord/Velocity network.




Release Notes - MC Data Bridge 2.0.1
This is a landmark update, representing a complete architectural overhaul of MC Data Bridge to introduce robust, high-performance, cross-server data synchronization for BungeeCord and Velocity networks.
Major New Features
  • Cross-Server Synchronization: The plugin now fully supports synchronizing player data (inventory, health, XP, potion effects, etc.) across multiple servers connected via a BungeeCord or Velocity proxy.
  • Database Locking System: A sophisticated, atomic locking mechanism has been implemented to prevent all race conditions and data corruption.
    • When a player joins a server, the plugin acquires a lock on their data in the database.
    • This lock is continuously renewed via a "heartbeat" task while the player is online.
    • If a player switches servers, the new server waits for the old server to save and release the lock.
    • A configurable lock-timeout ensures that if a server crashes, its locks will eventually expire and can be claimed by another server, preventing players from being permanently locked out.
  • Proxy Integration: The plugin now listens for a custom mc-data-bridge:main plugin message from the proxy. This message tells the server to immediately save a player's data when they are switching servers, ensuring data is persisted before they connect to the next server.
  • Startup Self-Healing: On startup, the plugin will now find and release any "orphaned" locks that were held by that same server before a crash or shutdown, ensuring a clean state.
⚙️ Configuration & Setup
  • server-id (Critical): A new, mandatory server-id has been added to config.yml. Each server connected to the same database must have a unique ID for the locking system to function correctly.
  • lock-timeout: A new setting to control how long a lock is considered valid before it can be forcefully acquired by another server. The default is 60 seconds.
Compatibility
  • Minecraft Version: This version is built for and compatible with Minecraft 1.21.x.
  • Platform Support: The plugin now requires the Paper API (for Spigot servers) and includes support for BungeeCord API and Velocity API.
✅ Stability & Performance
  • New Serialization Format: Item data is now serialized to Base64, which is significantly more robust and reliable than the previous NBT-based string method.
  • Backward Compatibility: The new version can still read the old NBT-based item format, ensuring a smooth upgrade path for existing users. Old data will be converted to the new format the next time it is saved.
  • Optimized Database Logic: All database interactions have been rewritten to be more efficient and atomic, using HikariCP for best-in-class connection pooling.
⚠️ Important Notes for Upgrading
  • This is a major, breaking update. It is a drop-in replacement, but its core logic is entirely new.
  • Proxy Installation Required: For the new cross-server synchronization to work, you must install the same mc-data-bridge-*.jar file into the plugins/ folder of your BungeeCord or Velocity proxy server.
  • Configuration is Critical: You must define a unique server-id in your config.yml on every single one of your Spigot/Paper servers. Failure to do so will lead to data corruption in a multi-server environment.
----------, Nov 7, 2025

Release Notes - MC Data Bridge 1.21.10.3
This is a key performance and stability patch. This update refactors both the player saving and loading processes to be more robust, performant, and secure.

⚡ Performance Improvements



  • [] Fully Asynchronous Player Saving: The entire player data save process, including NBT item serialization and JSON conversion, has been moved off the main server thread and onto an asynchronous task.

    [] Reduced Main-Thread Work (on Quit): This change prevents the PlayerQuitEvent from performing heavy serialization operations. This solves potential server lag spikes that could occur during events with mass player logouts (e.g., during a server restart).

✅ Stability & Robustness



  • [] Player Data Pre-loading (Login Gate): Player data is now loaded and validated synchronously during the PlayerLoginEvent (before the player enters the world). This is a critical data-integrity fix that prevents players from joining with empty data while their real data is still being loaded.

    [] Robust Pre-Join Kicking: Because data is loaded pre-join, players with locked data (from switching servers too fast) or corrupt data (deserialization errors) are now safely kicked before they ever enter the world.

    [] Database Startup Guard: A new safety check has been added. The plugin will now safely disable itself on startup if it fails to create or update the required player_data tables, preventing it from running in a broken state.

    [] Improved Deserialization Handling: Refactored the data loading logic to use a custom ItemDeserializationException. This makes the error-handling logic cleaner and more reliable.

⚙️ Internal Refactoring & Configuration



  • [] SSL & Custom JDBC Support: Added support for high-security database connections, including those requiring SSL. The database connection no longer uses hardcoded URL parameters (like useSSL=false). You can now specify any custom JDBC properties under the new database.properties section in config.yml to meet your host's requirements.

    [] Centralized Gson Instance: Consolidated the Gson instance into a single static object within the main plugin class for better code management.

    [] Code Cleanup: Removed unused classes (PluginManager.java, Utils.java) to streamline the codebase.

⚠️ Important Notes for Upgrading



  • [] Configuration Change: A new database.properties section has been added to config.yml to support custom JDBC settings. Your existing config file will be updated automatically with the new settings. No manual changes are required unless you need to customize your connection (e.g., to enable SSL for a secure database).
  • This version is a drop-in replacement for v1.21.10.2.
----------, Nov 5, 2025

Release Notes - MC Data Bridge 1.21.10.2

This is a critical stability and performance update. This version refactors the core data handling to be fully asynchronous, preventing server lag and ensuring data integrity across servers. We strongly recommend all users update.

✅ Fixes & Improvements

Stability & Data Integrity (High Priority)
  • Asynchronous Database Operations: All database calls (loading/saving data, table creation) are now performed asynchronously. This resolves major performance issues and prevents server lag or crashes from database-related delays.
  • Race Condition Fix: A database-level locking mechanism (is_locked flag) has been implemented. This prevents data loss when players switch servers quickly, ensuring the most recent data is always loaded.
  • Version-Independent Item Serialization: Replaced the fragile BukkitObjectOutputStream with a robust, version-independent NBT-based system. This is a critical fix to prevent inventories from being wiped after a Minecraft version update.
  • Robust Error Handling: If a player's data cannot be loaded on join, they will be safely kicked with an error message. This prevents a player's valid data from being accidentally overwritten by an empty inventory.
Performance & Configuration
  • Upgraded Connection Pooling: The database connection manager now uses HikariCP with a full set of advanced, configurable settings for optimal performance and resilience.
  • Updated config.yml: The configuration file has been expanded to include new options for fine-tuning the HikariCP connection pool and MySQL JDBC driver.
  • Dependency & Build Updates:
    • Updated core dependencies, including mysql-connector-j (9.5.0), spigot-api (1.21.10), and item-nbt-api.
    • Corrected the plugin shading process. gson is now correctly set as provided to prevent conflicts with other plugins, and item-nbt-api is properly relocated.

⚠️ Important Notes for Upgrading
  • Database Schema Update: On startup, the plugin will automatically add is_locked and last_updated columns to your player_data table. This is required for the new data-locking feature.
  • Configuration Update: Your config.yml will be updated with the new connection pool settings. It is recommended to review these new options, though the defaults are optimized for most servers.
----------, Nov 4, 2025

The project version has been bumped to 1.21.10.1.
----------, Oct 29, 2025

Features

* deps: A new script scripts/update_deps.sh has been added to automate the process of updating Maven dependencies. This
script will check for the latest versions, update the pom.xml, and verify the build, which will streamline the
development workflow.

Refactoring

* potion: The SerializablePotionEffect class has been updated to use the modern, key-based API for serializing and
deserializing potion effect types. This change fixes the use of deprecated methods and makes the serialization more
robust and future-proof.

Chore

* The project version has been bumped to 1.21.8.2.
----------, Oct 18, 2025

Resource Information
Author:
----------
Total Downloads: 48
First Release: Sep 6, 2025
Last Update: Nov 7, 2025
Category: ---------------
All-Time Rating:
0 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings