HuskSync | Sync Inventories & Ender chests cross-server | Advancements | Map Art | Stats | Backups icon

HuskSync | Sync Inventories & Ender chests cross-server | Advancements | Map Art | Stats | Backups -----

A modern, cross-server player data synchronization system




HuskSync 3.7.3 is a small update to address a few issues.
  • Updated the Packet-Events hook to support 1.21.4 (please note ProtocolLib still hasn't updated yet and won't work on 1.21.4)
  • Fixed PostgreSQL failing to update snapshots in the database, courtesy of @solaluset (#440)
To update, just drag+drop. Compatible with Paper/Fabric for Minecraft 1.20.1, 1.21.1, and 1.21.4.
----------, Jan 26, 2025

HuskSync 3.7.2 adds support for Minecraft 1.21.4. Additionally, please note that HuskSync for Minecraft 1.21.1 has now been promoted to the LTS support channel, and Minecraft 1.21.3 support has ended (replaced with 1.21.4).
  • Updated to support Minecraft 1.21.4
  • Fixed an exception that could be thrown when plugins attempted to register custom data API extensions
  • API: Added a method for retrieving an OnlineUser by UUID in the common module
To update, just drag+drop. Compatible with Paper/Fabric for Minecraft 1.20.1, 1.21.1, and 1.21.4.
----------, Dec 7, 2024

HuskSync 3.7.2 adds support for Minecraft 1.21.4. Additionally, please note that HuskSync for Minecraft 1.21.1 has now been promoted to the LTS support channel, and Minecraft 1.21.3 support has ended (replaced with 1.21.4).
  • Updated to support Minecraft 1.21.4
  • Fixed an exception that could be thrown when plugins attempted to register custom data API extensions
  • API: Added a method for retrieving an OnlineUser by UUID in the common module
To update, just drag+drop. Compatible with Paper/Fabric for Minecraft 1.20.1, 1.21.1, and 1.21.4.
----------, Dec 7, 2024

HuskSync 3.7.1 adds support for Minecraft 1.21.3, and fixes bugs.
  • Added support for Minecraft 1.21.3 on Paper and Fabric.
  • Added a warning on startup if the server.yml value has not been changed (#314)
  • Fixes an issue where you could double-click stack to collect unstacked items without edit perms in the inventory/ender chest GUIs.
  • Fixed the persistence of maps from Minecraft 1.20.5 and newer having an incorrect bit depth (#406)
  • Fixed edits on the DataSaveEvent failing to update save causes due to missing caching, courtsy of @ProdPreva1l and @seeruk (405)
  • Fixed the API not being published for v3.7 (#399)
To update, just drag+drop. Compatible with Paper/Fabric for Minecraft 1.20.1, 1.21.1, and 1.21.3.
----------, Nov 14, 2024

HuskSync 3.7 makes stability improvements and fixes bugs. This release also introduces a new release model for HuskSync as previously announced, which adds support for Fabric 1.21.1. HuskSync 3.7 supports Spigot/Paper/Fabric 1.20.1 and 1.21.1 ( download the right version for your server).
  • Changed the way the plugin is published. You must now download the correct JAR for your server's Minecraft version. See the announcement post on Discord for more details.
  • Added support for Fabric 1.21.1, courtesy of @hui1601 (#339)
  • Added an option to disable automatic DDL operations for servers with locked-down SQL user access, courtesy of @TheCodedOne (#377)
  • Added an aftermarket service command which force-upgrades all legacy user data from HuskSync v2
  • Users are now locked just prior to their data being updated following an inventory or ender chest command which updates their data
  • Attributes are now allow-listed instead of deny-listed.
    • This was done for a number of reasons, but primarily because it's a better config default; in the vast majority of cases users only need a specific set of attributes synced.
    • This prevents various edge-case attributes from being erroneously synced, too
  • Fixed item and block statistics not syncing (#362)
  • Fixed attributes not syncing when the default values were the same as the user's value due to an oversight, causing users whose attribute values reset from not syncing
  • Fixed issues with data rotation when the database mode was set to PostgreSQL (#383)
  • Fixed an issue on Paper 1.21.1 with map cursors not being correctly synced
  • Fixed an issue Paper 1.21.1 where inventory crafting slots weren't properly cleared for safety during sync
Compatible with: Spigot/Paper/Fabric 1.20.1 and 1.21.1 ( download the right version for your server).
⚠️ Please regenerate your config.yml and messages-xx-xx.yml files when updating to this release.
----------, Oct 3, 2024

HuskSync 3.6.8 adds support for Minecraft 1.21.1 and fixes a bug.
  • Added support for Minecraft 1.21.1
  • Fixed an exception related to map cursors on Paper 1.21+
To update from 3.6.7, just drag+drop. Otherwise, please regenerate or update your config.yml file.
----------, Aug 11, 2024

HuskSync 3.6.7 fixes bugs present in the previous release pertaining to attributes & potion effects. Please regenerate or update your config.yml file for this release.
  • Made several changes to attribute modifier syncing
    • A new section for configuring how to sync attributes has been added.
    • You can now configure attributes to ignore modifiers by name, such as potion effect modifiers which are now skipped by default (#349)
    • Attributes from Minecraft 1.20.1 data will no longer be applied on Minecraft 1.21 servers due to changes
    • Potion effect syncing now optionally depends on attribute syncing
  • Removed the TOAST notification display slot option (may be revisited in the future if toast dispatching is decoupled from advancements)
  • The status menu will now display more detailed server version information
  • Fixed ambient potion effects (beacons, conduits, The Warden mob) being synced when they shouldn't be (#289)
  • Fixed the syntax processing on husksync migrate set being incorrect
  • Fixed a ConcurrentModificationException on potion effect syncing, courtesy of @ProdPreva1l (#354)
  • Fixed the PacketEvents hook not cancelling relevant outbound packets (#344)
  • Fixed "Attribute modifier already applied" being thrown during attribute application (#348)
  • API: Added a ModLoadedCallback callback on Fabric for doing stuff when the mod loads, courtesy of @Stampede2011 (#346)
To update from v3.6.x, just drag+drop and regenerate your config file.
----------, Aug 9, 2024

HuskSync 3.6.6 makes a few minor fixes to issues.
  • Fixed the PostgresSQL driver not being bundled in the Fabric version of HuskSync
  • Fixed an issue with the in-game migrator's help menu displaying the wrong usage
    • The usage of the migrator command was slightly adjusted in HuskSync v3.6.3
  • Fixed the ProtocolLib hook failing to initialize in certain circumstances, such as if it had not initialized before HuskSync had.
To update from v3.6.x, just drag+drop.
----------, Jul 6, 2024

HuskSync 3.6.5 fixes a bug with item upgrading and attributes.
  • Fixed attributes throwing an exception when being applied on <1.21 servers
  • Fixed items not being correctly upgraded to the correct target version in some cases
To update, just drag+drop.
----------, Jun 22, 2024

HuskSync 3.6.4 fixes a bug with attribute syncing on >=1.21 in the previous release
  • Fixed it being possible to stack attribute modifiers in certain cases (#326)
  • Fixed a rare IllegalArgumentException syncing invalid health scale values
To update, just drag+drop.
----------, Jun 22, 2024

HuskSync 3.6.3 fixes a bug with permissions from the previous release.
  • Fixed permission checks not working correctly on Paper 1.20.4 and earlier servers.
  • Fixed command usage text not being set properly on Paper 1.20.4 and earlier servers
To update, just drag+drop.
----------, Jun 19, 2024

HuskSync 3.6.2 fixes a bug with command registration on Paper 1.20.4 and earlier servers from the previous release.
  • Fixed an IllegalArgumentException when a player joined the game on Paper 1.20.4 and earlier servers
To update, just drag+drop.
----------, Jun 18, 2024

HuskSync 3.6.1 is a bug-fixing update that also makes some improvements to plugin commands.
  • Commands are now natively registered via Brigadier where possible, and will provide rich syntax suggestions on Paper/Fabric servers
    • The brigadier_tab_completions option has been removed.
  • Added an option to disable individual HuskSync commands and prevent them from registering (disabled_commands)
  • The username argument is now required for the list and view subcommands of /userdata
  • Fixed compatibility with Minecraft 1.21 on Paper servers
  • Fixed various inconsistencies preventing the MongoDB database mode from fully working, courtesy of @Stampede2011 (#321)
  • Fixed locked maps in Shulker Boxes not having their map data persisted on data save (#322)
  • Fixed the section header comment being incorrect for the sync settings section of the config file
  • Fixed various issues with the Fabric version of HuskSync, including issues syncing the first hotbar slot
To update, just drag+drop. You may wish to regenerate your config.yml file for the updated command options.
----------, Jun 18, 2024

HuskSync 3.6 adds support for 1.21 and makes several internal changes to improve data syncing.
  • Updated the plugin to support Minecraft 1.21 on Spigot/Paper servers.
  • HuskSync now also runs as a server-side Fabric mod on Minecraft 1.20.1 servers. (#217)
    • Support for this is still in beta, but if you'd like to try it out, get in touch on Discord or self-compile as you will need a separate jar.
    • You cannot sync data between Bukkit & Fabric currently
    • Thanks to @hanbings and @Stampede2011 for their help with this
  • Data is now synced in a deterministic order, and data types can depend on one another (#309)
    • Attribute syncing now requires potion effect syncing to be enabled (it will automatically disable if both are not turned on)
    • Fixed health syncing conflicting with attribute syncing if they were applied to a user in the wrong order. (#307)
  • Updated the Traditional Chinese (zh-tw) locales, courtesy of @davgo0103 (#316)
  • Fixed an issue where HuskSync would attempt to load a hook for a dependency that had failed to enable
  • Fixed an incorrect syntax error message being displayed with the /userdata command.
  • API: Added data identifier dependencies
  • API: The plugin will now throw a NotRegisteredException if you attempt to access an invalid (shaded) API instance
  • API: Added an API platform target for HuskSync on Fabric
To update from 3.5.x, just drag+drop as there are no config changes.
----------, Jun 14, 2024

HuskSync 3.5.3 fixes a bug with potion effect syncing when upgrading from older versions.
  • Fixed attribute base values not being applied, causing these to fail to accurately sync the correct effective value under certain circumstances
  • Fixed data failing to load for users where users had potion effects saved with legacy Spigot API names due to an inconsistency
To update from 3.5.x, just drag+drop as there are no config changes. If you're updating from older versions, please check through prior changelogs.
----------, May 29, 2024

HuskSync 3.5.2 is a small release to fix a couple of minor issues that have cropped up since the last release.
  • Added support for using PacketEvents as an alternative to ProtocolLib for packet-level user support, courtesy of @alexdev03 (#296)
  • Fixed an issue where legacy statistic data would cause NullPointerExceptions during registry key instantiation in certain circumstances (#304)
  • Fixed a schema issue with PostgreSQL, courtesy of @ProdPreva1l (#299)
  • Fixed duplication in user table entries, and username caches not being updated for MongoDB users, courtesy of @ProdPreva1l (#301)
To update from 3.5.1, just drag+drop as there are no config changes. If you're updating from older versions, please check through prior changelogs.
----------, May 27, 2024

HuskSync 3.5.1 adds support for Minecraft 1.20.5 and 1.20.6. Thanks for your patience as I prepared this update - I was waiting on a Spigot upstream attribute-related fix to be merged with Paper, among other things, before releasing this.
  • Added support for Minecraft 1.20.5 and 1.20.6
    • There are major NBT changes in this release. Downgrading is definitely not possible, even if you do hacky stuff like updating data versions
    • HuskSync will use Mojang's DataFixerUpper (DFU) via Item-NBT-API to perform on-the-fly migration of item data to the new component-based format
  • Fixed users with PacketEvents installed having skins and render distance settings fail to update for clients on join sometimes (#287)
  • Fixed an issue related to performing async operations on player item NBT when serializing locked map data on items
  • Changed how advancement grant messages are disabled when syncing data
    • This previously temporarily adjusted the gamerule. This is no longer the case; instead advancement grants for locked users will be cancelled through Paper's event
    • Now works correctly on Folia, though no longer works on Spigot (due to Spigot lacking an event param for this)
  • Added French (fr-fr) locales, courtesy of @IbanEtchep (#293)
  • API: Added an optionally-overridable deserialize method to Serializer that accepts a Minecraft version if you need to perform data-upgrade operations contextual to the Minecraft version of the snapshot data when deserializing
To update, just drag+drop – there are no config changes if you're upgrading from v3.5. Please check the change notes for v3.5 if you are upgrading from an older version.
----------, May 6, 2024

HuskSync 3.5 is a big update adding support for Folia, Attribute & separate Flight Status data syncing, PostgreSQL data storage, Mongo Atlas support, ProtocolLib support, and more.
  • Added support for Folia (#280)
  • Added a new data type: Attributes (#276)
    • Adds support for syncing attributes applied to players, including modifiers and instances and fixes issues related to health and max health syncing.
    • The following data values which can be attributed to the player will now be properly synced: Flight speed, Movement speed, Luck, Knockback resistance, Mob pathfind follow range, Knockback, Attack speed, Max absorption (1.20.2+)
    • This means that plugins/commands modifying player attributes directly will now be correctly synced cross-server. This system now also better takes into account modifiers from equipment and potion effects.
    • This also futureproofs support for syncing these newly customizable values coming in 1.20.5/1.21: Block breaking speed, Entity/block mining range ("reach"), Step height, Jump strength, Distance you can fall without taking fall damage, Fall damage calculation multiplier, Gravitational pull
    • The config to sync max health has been removed and replaced with a config option to skip syncing specific attributes
  • Added a new data type: Flight Status, which has been moved out of the game mode data type (#273)
  • Added support for PostgreSQL as a database storage option, courtesy of @ProdPreva1l (#255)
  • Improved MongoDB data storage support, courtesy of @ProdPreva1l (#255)
    • Added support for MongoDB Atlas
    • Added support for Mongo replica sets
  • Added support for hooking into ProtocolLib to ignore inbound locked user packets for lower-level cancellation (#274)
  • Improved data validation; this now takes place on unpack rather than deserialization (#279)
    • You can now delete invalid or corrupt snapshots
  • Slightly adjusted how cursor items are handled on logout
  • The system locale format will now be used for formatting dates / times
  • Fixed issues with /userdata menus when viewing data for users with names that were surrounded with double underscores (#270)
  • Fixed it being possible to manipulate armor stands while locked (even if you're not using ProtocolLib)
  • Fixed an IntegrityConstraintViolation when trying to modify inventory data of an offline player through the API (#275)
  • Updated the Simplified Chinese (zh-cn) locales, courtesy of @jhqwqmc (#281)
  • API: A few API changes have been made:
    • Added husksync:attributes and husksync:flight_status data types.
    • husksync:health – Methods to get/set max health have been deprecated for removal. Helper methods to easily access this have been added to the new husksync:attributes
    • husksync:game_mode – Methods to get/set if the player is flying/can fly have been deprecated for removal. Use the new husksync:flight_status attributes instead
    • Data save causes can now hold a flag specifying whether they should fire the DataSaveEvent (by default, all except shutdown/legacy migration do this)
    • Internally, serializers that extended BukkitSerializer.Json have been removed and now just use BukkitSerializer.Json<Type> as their serializer. Since these serializers were internal, this shouldn't introduce any breaking changes, but is noted here nonetheless.
To update, just drag+drop. You should regenerate your messages-xx-xx.yml file and consider regenerating your config.yml file, particularly if you use MongoDB (as new options have been added for Atlas support)
----------, Apr 13, 2024

HuskSync 3.4 adds support for MongoDB! It also fixes a bug and addresses a compatibility issue.
  • Added support for MongoDB storage, courtesy of @ProdPreva1l (#250)
  • Improved the compatibility of event cancellation handling for better plugin interoperability, courtesy of @EinDev (#246)
  • Fixed an issue where the last snapshot cache of online users would not be invalidated on Redis on a server shutdown, causing sync issues in specific circumstances
To update, just drag+drop.
----------, Mar 2, 2024

HuskSync 3.3.3 fixes a bug in the previous release.
  • Fixed player death save events causing issues with players dying multiple times
  • API: Data save and update causes are now customisible by developers
To update, just drag+drop.
----------, Feb 17, 2024

HuskSync 3.3.2 is a minor bug fixing release.
  • Fixed /userdata restore not working due to it failing to update cached user data if the sync mode is LOCKSTEP (#242)
  • Fixed /userdata delete not clearing cached user data if the sync mode is set to LOCKSTEP. (#245)
  • API: Fixed cancelling or modifying the outcome of the DataSaveEvent not being effective. (#243)
    • The DataSaveEvent will now always fire before the data save pipeline, except on server shutdown, rather than just before database operations.
To update, just drag+drop.
----------, Feb 13, 2024

HuskSync 3.3.1 fixes a few minor bugs present in the prior release.
  • Fixed the /inventory and /enderchest commands not updating the inventories of offline players (#229)
  • Fixed the ITEMS_TO_KEEP death save setting not preserving the position of items in the saved inventory snapshot (#186)
To update, just drag+drop.
----------, Feb 5, 2024

Please note, as announced on Discord, starting with this release support for Minecraft 1.16 and Java 16 has been dropped. HuskSync now requires Java 17 / Minecraft 1.17.1 as a minimum.

HuskSync 3.3
is a minor version release that makes changes to how developers target the API, and makes a selection of locale updates, fixes, and improvements.
  • If your Redis server goes down, HuskSync will now automatically attempt to reconnect to it, courtesy of @Rubenicos (#230)
  • Changed the way config files are loaded, and updated the config comment formatting (#233)
  • Fixed an issue on servers with significant Redis server connection latencies where snapshots would be applied multiple times to users
  • Added Indonesian (id-id) locales, courtesy of @Wirayuda5620 (#226)
  • Updated the Simplified Chinese (zh-cn) locales, courtesy of @jhqwqmc (#224)
  • Updated the Turkish (tr-tr) locales, courtesy of @WinTone01 (#228)
  • API: The way the HuskSync API is published has been changed.
    • APIs are now published per-platform; husksync-bukkit and husksync-common can now be targeted.
    • Simply update your build scripts to target the net.william278.husksync:husksync-bukkit artifact
    • HuskSyncAPI is no longer an abstract class; you can now retrieve an instance of the base class with HuskSyncAPI.getInstance()
    • Otherwise, there are no breaking changes.
To update from v3.2.x, just drag+drop and regenerate your locales file (messages-xx-xx). You should not need to touch your config file unless it's very outdated (regenerate it if so!)
----------, Jan 26, 2024

HuskSync 3.2.1 fixes bugs, adds a /husksync status command for debugging, and updates the plugin locales.
  • Added /husksync status (permission node: husksync.command.status), which displays system status information for debug purposes
  • Updated the Simplified Chinese (zh-cn) locales, courtesy of @jhqwqmc (#220)
  • Fixed a bug that could occur on Minecraft 1.20.4 where the GRASS statistic wasn't being properly upgraded from legacy (v2) snapshot versions causing synchronization to fail
To update from v3.1.x, just drag+drop. For earlier versions, please consult prior release notes.
----------, Dec 27, 2023

HuskSync 3.2 fixes bugs, makes the default sync mode LOCKSTEP, and makes a few internal changes (hence the minor version bump)
  • Added support for Redis Sentinels, courtesy of @romanalexander (#216)
  • Made LOCKSTEP the default sync mode in the config file
  • HuskSync now uses the native adventure platform implementation on Paper servers running 1.19.4+ (this fixes clickable menus not quite working on 1.20.4)
  • Improved player max health / health scale synchronization to hopefully better account for item attributes (#148)
  • Fixed flight synchronization sometimes failing and causing an IllegalArgumentException in the server console (#206)
  • Fixed a rare issue where data could sometimes fall out of sync if users moved between servers that did not have HuskSync installed in a certain way
To update from v3.1.x, just drag+drop. For earlier versions, please consult prior release notes.
----------, Dec 21, 2023

HuskSync 3.1.2 adds support for Minecraft 1.20.4. Please note that since a library, adventure-platform-bukkit, has not yet updated, interactive chat and action bar notifications won't work on 1.20.3+ clients just yet. I'll put out a follow-up release when that's been addressed. :)
  • The plugin now supports Minecraft 1.20.3 and 1.20.4.
  • Added support for translating Data Save Causes, courtesy of @nartsisss (#214)
  • Added Russian (ru-ru) locales, courtesy of @nartsisss (#211)
  • Added Turkish (tr-tr) locales, courtesy of @WinTone01 (#207)
  • Updated the German (de-de) locales, courtesy of @Ceddix and @Joo200 (#196, #215)
To update from v3.1.1, just drag+drop. For earlier versions, please consult prior release notes.
----------, Dec 12, 2023

HuskSync 3.1.1 fixes a minor bug related to persisted locked maps and updates some locales.
  • Updated the Simplified Chinese (zn-cn) locales, courtesy of @Q2297045667 (#183, #184)
  • Fixed banners on persisted locked maps having their banners added too many times when being rendered
    • This could cause excessive client-side lag if too many were added
    • Other minor optimizations to locked map canvas rendering were made in this release
To update, just drag+drop.
----------, Oct 19, 2023

HuskSync 3.1 adds a new sync mode option for better stability on some servers, adds new options for saving player items on death, now runs as a Paper plugin on Paper servers, improves locked map syncing, and more.
  • Added a new sync mode; LOCKSTEP in addition to the default DELAY system (#178)
    • This mode provides better stability for a smoother experience on servers with considerably variable tick rates or network latency
    • DELAY (which pauses syncing for your configured netwrok latency) will remain the default for now, but this may change to LOCKSTEP in the future.
  • Added new configuration options for configuring the behaviour of the system for saving player items on death (#179)
    • Users running Paper servers (reccommended) the system will now save their "items to keep," if any are present instead of their drops
    • Useful for servers with per-item keepInventory setups
    • Rearranged the "save_on_death" options in the config.yml file to be all next to one another
  • Locked maps created on other servers, synchronised between servers, then placed in item frames/storage will no longer appear blank after a server restart (#180)
    • Such maps will now be saved locally to disk on each server and updated with the correct map data when needed, if applicable
  • HuskSync now runs as a Paper plugin on Paper servers.
  • Added a warning that the MySQLPlayerDataBridge migrator only supports migrating from MPDB versions v4.9.2 and below (an update will be released in the future to support newer versions)
  • Fixed an error that could be thrown on modded servers caused by modded blocks/items being null by @GsTio86 (#171)
  • Fixed an issue where interactive menus would sometimes not be clickable on Minecraft 1.20.2 servers
  • Added Dutch (nl-nl) locales, courtesy of @arnokeesman (#176)
  • Updated the Japanese (ja-jp) locales, courtesy of @NamiUni (#170)
To update, it's recommended that you regenerate your config.yml file for this release.
----------, Oct 13, 2023

HuskSync 3.0.2 is a hotfix release to address a problem with locked map persistence.
  • Fixed a "Tried returning part of the NBT to outside of the NBT scope" NBT API error when applying map data on a server without pre-existing map data (#169)
  • Fixed an exception fetching player block statistics on modded (e.g. Arclight) servers.
To update, just drag+drop.
----------, Sep 23, 2023

HuskSync 3.0.1 fixes a few bugs present in the initial v3.0 release.
  • Enabled locked map syncing by default (persist_locked_maps) is now set to true in the default config
  • Improved exception handling when a data element fails to be deserialized or applied to a user.
  • Added a config option to disable max health syncing (synchronize_max_health under the synchronization section)
  • Fixed a few issues with health syncing on certain setups (such as extreme health values being applied to players in some cases)
  • Fixed the /userdata restore command having the wrong syntax error message (#166)
  • Fixed data from v2.x displaying the wrong timestamp/UUID, and it not being possible to view or manage these old snapshots (#167)
To update from v3.0, just drag+drop. You may wish to regenerate your config to get the new max health syncing option (or just add it manually from the docs page)
----------, Sep 22, 2023

HuskSync 3.0 is a major release introducing a new, much more versatile data format to enable developers. It supports Minecraft 1.16.5—1.20.2 (released today).
  • Introduced data format v4 — a much more modular format which improves the capability of the HuskSync API
  • Added better support for modded items and plugins which inject ItemStacks with custom NBT tags directly, in addition to the existing support for items with Persistent Data Container (PDC) data
    • It is my intent that plugins such as MMOItems, MythicMobs and ItemsAdder will have their data correctly synced starting with this release.
  • HuskSync will now synchronise Custom Persistent Data Tags applied to players (#155)
  • Banners on locked maps will now be synchronised, and locked map syncing should be more stable in general.
  • The approximate file size of a data snapshot, in KiB, is now displayed on the Data Snapshot List menu and Overview menu.
  • Added a new config option to allow for the customisation of a minimum time for creating additional data snapshots (default: 4h), to make the set of backups available on-hand to administrators more useful.
    • The intent here is that HuskSync should keep the last snapshot from the last X number of play sessions, to allow for more convenient rollbacks if the worst happens
  • Fixed an issue where HuskSync would not save data correctly on server shutdown (#159)
  • Fixed various compatibility issues with other plugins utilising CompletableFuture's shared thread pool (HuskSync will now execute asynchronous operations via platform-implementing APIs, such as Bukkit's task system)
    • Preliminary work has been undertaken to support Folia, which I am to support soon, though wish to test thoroughly first (and may need to adjust synchronous operations to be player-location specific).
  • Updated the Italian (it-it) locales, courtesy of @iVillager (#163)
  • API: HuskSync has an all-new API (v3), hence the major version bump. This necessitates breaking API changes and means plugin developers will have to convert their add-ons to APIv3.
    • Developers can now provide their own extensions of Data and implementations of Serializer to provide custom data
    • The new Custom Data API is already seeing use to allow the synchronisation of data from mods such as Pixelmon!
    • Much more versatile access to getting, setting and editing Data Snapshots and the data they contain
To update, drag+drop the .jar file into your /plugins/ folder and regenerate your config.yml and messages-xx-xx.yml files. Data will automatically be converted from v2.0's format. Thanks to @alexdev03 for their help testing and preparing this release.
----------, Sep 21, 2023

HuskSync 2.2.8 fixes another issue preventing MariaDB database environments from occasionally failing to initialize. Sorry for all the updates today!
  • Fixed the MariaDB Driver class not being found during initialization
  • Tweaked database initialization confirmation messages
To update, just drag+drop.
----------, Jul 28, 2023

HuskSync 2.2.7 fixes a bug related to initializing the database for MariaDB users.
  • Fixed MariaDB database users failing to initialize the connection due to a missing schema file
To update, just drag+drop. MariaDB users can now set their database type to MARIADB.
----------, Jul 28, 2023

HuskSync 2.2.6 is a maintenance update that fixes a few issues and improves support for users running a MariaDB v11 database.
  • Added MariaDB protocol option type, courtesy of @Joo200 (#145)
    • The MariaDB driver is now bundled in with the plugin to support MariaDB v11 properly
  • Fixed a ConcurrentModificationException that could occur when saving locked map data, courtesy of @rafaelflromao (#140)
  • Added the ability to specify * in the blacklsited command list to block all commands during sync, courtesy of @kforbro (#138)
  • Fixed users inventory crafting slots not being cleared properly before a data sync (#153)
To update, just drag+drop. If you're using MariaDB v11, you should now specify MARIADB as your database type in config.yml.
----------, Jul 28, 2023

HuskSync 2.2.5 fixes bugs and has been tested to work with Minecraft 1.20 on Spigot. What's coming next to HuskSync, you ask? I'm working on making various improvements to the internal way in which it handles asynchronous operations to improve stability with other plugins that make use of CompletableFutures.
  • Fixed an issue with player PersistentDataContainer synchronization where certain primitive data types would fail to be saved correctly (#118)
    • Please note PersistentDataContainer syncing is still considered an experimental feature
  • Fixed some string compare operations being locale-specific causing compatibility issues on some machines
  • Fixed an issue where the exception logger would fail to print a stacktrace, making debugging synchronization problems harder
  • Updated the Chinese (Traditional) locales, courtesy of @davgo0103 (#124)
To update from v2.2.4, you can just drag+drop. Songoda customers: Since the last release, Songoda has been renamed to Craftaro. Purchases were automatically moved to the new Craftaro site.
----------, Jun 9, 2023

HuskSync 2.2.4 fixes a number of bugs present in the previous release and adds an option beneficial for setups using the keepInventory gamerule or plugins.
  • Added a new config option under the synchronization section: save_empty_drops_on_death
    • This option, which is enabled by default, can be set to false to stop user data snapshots from being created when a user dies and has dropped no items
    • Requires the save_on_death option to be on to be effective
    • This is beneficial for setups using keep inventory (#73)
  • Fixed an issue that would prevent servers from saving persistent data container tags correctly on shutdown
  • Fixed an issue where the update checker would erroneously report that an update was available
  • Renamed the save_dead_player_inventories option to synchronise_dead_players_changing_server to better reflect how it works.
  • Updated the German (de-de) locales, courtesy of @Ceddix (#101)
To update, you must regenerate your config, as a new option has been added and a key renamed. Be sure to update your config on all servers.
----------, Mar 11, 2023

HuskSync 2.2.3 contains more fixes and tweaks to improve your user's experiences.
  • Fixed an issue where players could interact with item frames during the locked synchronization process.
  • Fixed an issue where a ConcurrentModificationException could occur when fetching the user's PersistentDataContainer key mappings
  • Added a new config option (synchronisation.blacklisted_commands_while_locked)
    • This lets you blacklist certain commands to prevent them from being used during the locked synchronization process.
    • Useful for certain plugins, like auction house plugins
    • Empty by default
To update, just drag+drop.
----------, Feb 13, 2023

HuskSync 2.2.2 is a hotfix for an unchecked cast exception that appears on player locking logic that occurs when a drowned throws a trident.
  • Fixed an exception caused by an unchecked cast when a drowned throws a trident (#79)
There are no config or locale changes from v2.2.1. If you're updating from v2.1 or earlier, you will however need to regenerate your config file.
----------, Jan 10, 2023

HuskSync 2.2.1 is a small bug fix update
  • Fixed an issue where a user could throw a trident while in a locked state, which could be picked up after synchronization completed
  • Fixed an issue that prevented items on the users' cursor when disconnecting from correctly dropping to the ground
  • Fixed an issue that meant the plugin could try and add citizens NPCs to the database
  • Simplified the logic in some areas, carrying out some miscellaneous refactor work.
    • The signature of the methods to get and set data to/from OnlineUser have changed.
    • These methods shouldn't be used by authors directly so this shouldn't affect any plugins (see the provided HuskSyncAPI methods to do this).
To update, just drag+drop. There are no config changes since v2.2 -- though note if you're upgrading from v2.1 or earlier you will need to regenerate your config file.
----------, Jan 7, 2023

HuskSync v2.2 adds beta support for synchronizing locked maps. Note this feature is in beta and disabled by default for now.

In addition to this, a number of other user experience improving features and tweaks have been made, such as the ability to display synchronization notifications in advancement toasts and customize the priorities of HuskSync's events.
  • Added the ability to synchronize locked map items (#65)
    • This only works on static locked maps; i.e. ones placed in a cartography table with a glass pane.
    • The pixels of locked maps are serialized to the item and then set when the player changes server.
    • Treasure maps are unsupported. This feature is in beta, so is disabled by default.
  • Added a display option to display synchronization notifications in the advancement toast slot (#68)
  • The priorities of the DEATH, JOIN and QUIT events can now be customised for better plugin compatibility (#61)
  • Fixed an issue that meant inventory and ender chest editing permission nodes weren't being properly respected
  • Fixed the MySQL Username database credentials being at the wrong path in config.yml
    • As a result, you will need to regenerate your config for this release
  • Fixed an issue that meant players weren't being properly locked on disconnect or server shutdown
  • Fixed an issue that meant items on player cursors weren't being cleared when updating their inventory
  • Fixed an issue that meant locked/unsynced players still had their data saved on the world save event or if they died
  • Fixed an issue that meant snapshots could go onto a second line due to long data save cause name IDs (#60)
  • Added additional error handling when setting player health and statistics to increase synchronization resilience of the system when bad values are set by other plugins
  • API: Added a method to get whether or not a player is currently "locked", courtesy of @emmanuelvlad (#75)
To update, drag+drop and be sure to regenerate your config and locales files. Thank you!

[​IMG]
----------, Jan 3, 2023

HuskSync v2.1.2 fixes an issue related to players losing items in rare cases at very low health point values when changing servers.
  • Fixed an issue where players would be incorrectly treated as dead at very low health point values
To update from v2.1.x, just drag+drop. For older versions, consult the previous changelogs.
----------, Nov 13, 2022

HuskSync v2.1.1 is a minor update that fixes an issue with the inventory and ender chest viewer commands and updates the German and Italian locales.
  • Fixed a crash that could occur when using the /inventory or /enderchest commands as a result of futures blocking the main thread during join operations (#58)
  • Updated the German locales (de-de), courtesy of @Ceddix (#56)
  • Update the Italian locales (it-it), courtesy of @iVillager (#57)
To update, just drag+drop. Users running the German or Italian messages file may wish to regenerate their config file. No other config changes.
----------, Oct 26, 2022

HuskSync v2.1 makes a few quality-of-life improvements to the chat menu interface and adds some smaller requested features, such as the ability to create a data snapshot whenever a user dies.
  • Added a new option to create and rotate user data snapshots when a user dies
  • Added the ability to dump UserData snapshots to files or a web paste server in-game through a new /userdata dump command with a new permission node
  • The user data snapshot list for each user now presents snapshots in a paginated list for easier browsing and organisation
  • Improved error handling for rare DataSerialization exceptions
  • Significantly reduced the overheads of UserData storage through a modular approach, especially for servers which use less features
  • Improved the config handling system (via Annotaml)
  • Using the restore feature on snapshots that captured a dead user (<= 0 HP) will now restore them on half a heart
  • The latest Inventory and Ender Chest editor menus no longer update the user's current data when you close them even if you hadn't changed anything
  • The Ender Chest menu now supports Purpur's expanded inventory option and will dynamically resize beyond the three rows if necessary
  • Fixed it not being possible to creative-middle-click-clone item stacks from archived Inventory or Ender Chest menus that were uneditable
  • Updated the look of the about menu to match HuskHomes
  • Updated chat messaging logic to make use of the Adventure API via MineDown-adventure
  • Updated inventory handling to use TriumphGUI
  • API: Deprecated #getXData methods in the UserData class in favour of new #getX methods that return Optional<>s
  • API: Deprecated the full-fat constructor on the UserData class in favour of the new UserDataBuilder method
To update, regenerate your config and messages files (and don't forget to plug in your credentials and settings again!) and drag+drop the new jar file in.
----------, Oct 13, 2022

[​IMG]
HuskSync v2.0.2 fixes a compatibility issue with MariaDB caused by a race condition in user data ensuring and adds rich command syntax highlighting via commodore.
  • Added rich command syntax highlighting via commodore (see image)
  • Fixed an SQLIntegrityConstraintViolationException that would occur sometimes on MariaDB setups with large amounts of user data, caused by a race condition in ensuring the correct user data records were present (#40)
  • Fixed an issue that meant the legacy and MPDB data migrators would not accurately track migration progress.
  • Made the error that is logged when HuskSync fails to initialize larger and more obvious (#47)
  • Shrunk the jar file; the Jedis driver is now downloaded at runtime and boosted-yaml is now bundled in
  • Corrected the player persistent data container synchronization logic to fix various data types not synchronizing correctly
  • Added a config option to determine whether the plugin will synchronize dead player inventories; off by default (recommended for servers who want to use keepInventory)
  • Added Bulgarian (bg-bg) locales, courtesy of Pukejoy_1
  • API: Fixed an issue that prevented developers from being able to listen to HuskSync events
To update from HuskSync v2.0(.x), just drag+drop. Users upgrading from v1.x will need to follow the legacy migration documentation.
----------, Aug 21, 2022

HuskSync 2.0.1 fixes a few outstanding issues from the initial v2.0 release and updates the zh-tw (Traditional Chinese) locales.
  • Updated the Traditional Chinese (zh-tw) locale, courtesy of davgo0103
  • Tweaked the synchronization logic related to dead players; the plugin will now synchronize dead players correctly.
    • Fixed an IllegalArgumentException that could occur when synchronising a dead player (courtesy of HookWoods)
  • Fixed a crash that could occur in rare cases, caused by exceptional synchronous PlayerQuitEvent execution
  • Tweaked player event handling during player disconnections
  • Increased the maximum blob size in the MySQL Database schema (mediumblob --> longblob) to accommodate servers that utilize complex item tagging and metadata
  • Improved debug logging messages and exception handling when setting and saving player data
To update from HuskSync v2.0, just drag+drop. Users upgrading from v1.x will need to follow the legacy migration documentation.
----------, Jul 14, 2022

[​IMG]

⚠️ Upgrading from v1.x? Follow these steps!

HuskSync 2.0 is now available! This is a complete rewrite of the plugin that brings with it a myriad of new features, improvements & optimisations. Notably, you no longer need to install HuskSync as a proxy plugin as data is now cached directly via Redis keys.

New features
  • Data rotation! The plugin can now store multiple snapshots of user data per player and will automatically rotate them
    • You can restore, delete and pin user data. Peace of mind if something happens to go wrong.
    • You can configure how many snapshots to save
    • Commands: /userdata <view/list/delete/restore/pin>
  • New user data format, new database schema, improved data serialization using Gson and compression via Snappy
  • New, faster synchronisation system, utilising Redis key caching for optimal server switching
  • Added support for synchronising player PersistentDataContainers.
  • Added an integration that allows you to view user data on your Plan (Player Analytics) web panel if you have it installed
  • Added support for tweaking network latency on a per-server basis
  • API v2: There's an all-new and more comprehensive Developer API
    • Events have been renamed and repackaged, and there is also a new BukkitDataSaveEvent
    • Documentation now provides better walkthrough examples
Changes
  • HuskSync no longer requires a proxy plugin. You now only need to install it to your backend Spigot servers
  • /husksync invsee and /husksync echest have been moved into their own commands; /inventory <player> and /enderchest <player> respectively.
    • There are now less restrictions when using these commands
    • There are now permission nodes to restrict editing a player's latest data snapshot
  • The plugin permission nodes have changed. Check here for the new ones
  • SQLite is no longer supported. A MySQL Database is now required (although most people already used MySQL anyway)
  • Removed /husksync status (it is no longer neccessary)
Locales
  • Added a Brazillian Portugese translation (pt-br), courtesy of mateusneresrb
  • Added an Italian translation (it-it), courtesy of xF3d3
  • Updated the Spanish translation (es-es), courtesy of Melonzio
  • Updated the German translation (de-de), couretsy of Ceddix
  • Updated the Simplified Chinese translation (zh-cn), courtesy of DJelly4K
  • The plugin locales have changed. If you'd like to update the locales for your native language, please feel free to get in touch or submit a PR on GitHub
To update from 1.x, you need to follow these steps, including deleting your existing config and language files.
As mentioned, you no longer need to install HuskSync on your proxy.

The plugin documentation has been rewritten for v2.0 - please have a read!

HuskSync 2.0 supports Minecraft 1.16.5 - Minecraft 1.19.x

Thank you!
----------, Jul 12, 2022

HuskSync 1.4.1 fixes an exploit related to player death. Updating to this release is strongly encouraged.
  • Fixed an exploit where players could duplicate items in some cases by dying during the synchronization process.
To update, just drag+drop.

A note about the next release of HuskSync: HuskSync 2.0 is coming soon! This release will move away from requiring a proxy plugin, instead caching data via Redis keys. This will carry with it a new data format. It'll be much faster and will have new features such as creating and restoring backups of player data.
----------, Jul 4, 2022

[​IMG]

HuskSync 1.4 is now available and supports Minecraft 1.19.x, adds a number of new locales, saves player data on the WorldSaveEvent, makes a number of breaking API changes and fixes a number of minor issues.
  • Player data is now backed up to the central cache on the world save event (#21)
    • Can be turned off in the bukkit-side configs.
  • Native advancement synchronization is now off by default. Updated support for this may return in a future update, though of course the spigot API advancement sync will still work fine.
  • Added a number of new plugin locales - thank you to everyone who contributed new translations:
    • German (de-de), courtesy of Ceddix (#19)
    • Traditional Chinese (zh-tw), courtesy of davgo0103 (#23)
    • Simplified Chinese (zh-cn), courtesy of ghost-chu (#24)
    • Ukrainian (uk-ua), courtesy of Thourgard (#29)
  • Fixed a health synchronization compatibility issue with Combatlogx (#25)
  • Moved a few expensive deserialization options off the main thread. Thanks to everyone for their reports and assistance in tracking performance bottlenecks down.
  • There's a new config option for modifying the synchronization_timeout_retry_delay. This can be used to modify how long until HuskSync retries a data request if it fails. Don't mess with this if you don't know what you're doing!
  • API: The HuskSync API has been notably refactored. API integrations developed for HuskSync 1.3.2 are not compatible with 1.4 API. Sorry for the inconvenience, though it should be relatively simple to update.
    • Packages have been refactored: me.william278.husksync.* --> net.william278.husksync.*
    • Internally, the plugin module scheme has changed; events are now included in the bukkit module.
    • The timestamp of when PlayerData was last created/updated is now exposed through PlayerData#getDataTimestamp()
    • Fixed PlayerData not being included in the API.
    • The API is still available via Jitpack, check the README for details.
To update, just drag+drop - though please consult your developers if you have custom API integrations. They'll need to be updated. Once again, sorry for that inconvenience.
Enjoy the update - and the 1.19 Wild Update!
----------, Jun 8, 2022

HuskSync 1.3.2 adds Japanese and Spanish language support and makes a number of fixes, tweaks and improvements.
  • Added Japanese (ja-jp) locales courtesy of Namiu/うにたろう (#17)
  • Added Spanish (es-es) locales courtesy of anchelthe
  • Improved the way libraries are shaded and refactored build script courtesy of HarvelsX (#16)
  • Tweaked event priorities on BungeeCord to prevent slow event operations causing synchronization issues.
  • Fixed the current timestamp being inserted into MySQL being incorrectly set
  • Reworked the Redis listener to fix an issue that could cause EndOfStreamExceptions in certain circumstances
  • Bumped bStats dependency
Important: Recent builds of Paper implement new API for player profile data, but this caused issues when trying to serialize player head data, breaking HuskSync. This has been fixed in the most recent builds (#195+).

To update, just drag+drop.
----------, Feb 16, 2022

HuskSync 1.3.1 fixes a few rare issues that could occur on certain setups and makes a few optimizations with connecting to Redis.
  • Updated HikariCP to 5.0.1 to fix an issue where the database connection pool could be drained in rare circumstances.
  • Updated the way Redis connections are established via Jedis
    • Updated the Jedis dependency to 4.0.1
    • A connection pooling setup is now utilized to enable a more optimal retrieval of connections.
    • Added a config option to allow you to connect to Redis servers via SSL
To update, just drag+drop. The new use_ssl config option should appear under redis_settings in the config files of both the proxy and spigot servers.
----------, Jan 21, 2022

HuskSync 1.3 introduces a native implementation for advancement synchronization that means advancements will more accurately sync advancement data and no longer display duplicate toasts in the top right corner of the screen when changing servers. It also includes significant improvements to the API allowing developers to fetch user data.
  • Added native advancement synchronization (on by default)
    • Fixes duplicate toasts and award sounds appearing when changing servers.
    • Can be toggled as a config option in the HuskSync config file on Spigot servers.
    • Fixes advancement award dates not synchronizing correctly.
    • Uses reflection to hook into NMS classes as the Spigot API doesn't offer advanced advancement data setting options.
    • Works with 1.18+
  • Fixed an issue with relocation on bStats.
  • API: Added a new API entrypoint class that provides methods for retrieving and updating PlayerData, HuskSyncAPI.
    • Get an instance using #getInstance();
  • API: HuskSync's DataSerializer class that provides static methods for serializing and deserializing data stored as PlayerData is now available as part of the API.
  • API: The API events have moved and are now located under me.william278.husksync.bukkit.api.events
  • API: Javadocs are now available and the API can now be retrieved from Jitpack. Please see the README for more details.
To update, you can just drag+drop! If you're on 1.16 still, then you may be prompted with a warning that native advancement synchronization is not supported for your version. To fix this, just disable native_advancement_synchronization in your HuskSync Spigot config.yml files.
----------, Jan 7, 2022

HuskSync 1.2.2 fixes a Redis authentication issue with 1.2.1
  • Fix redis authentication issue
To upload, just drag+drop. Happy holidays.
----------, Dec 24, 2021

HuskSync 1.2.1 fixes an issue with the MySQL driver on velocity.
  • Fixed the MySQL connection failing to initialize on velocity
To update, just drag+drop.
----------, Dec 23, 2021

HuskSync 1.2 adds support for Velocity proxies.
Velocity is a proxy server similar to BungeeCord but a completely different project, built from the ground up. It is currently being maintained by the Paper team, who have announced that Waterfall will be discontinued in favor of it.
Installation and configuration on Velocity is exactly the same as on BungeeCord-based proxies.
  • Added support for Velocity proxies
    • Metrics have been added for HuskSync (Velocity), too, which you can find here.
    • As with BungeeCord, installation involves starting the proxy (and spigot servers) with the plugin, filling in the Redis and optionally MySQL credentials, then restarting the server.
  • Added option to independently enable/disable synchronicity of creative flight
  • Miscellaneous code refactoring and performance improvements
The new option to enable/disable creative flight will be added to the config files on your spigot servers. It is off by default.
Oh, and have a Merry Christmas / Happy Holidays! I need a rest :D
----------, Dec 17, 2021

HuskSync 1.1.2 is a hotfix update that corrects an issue preventing the MySQLPlayerDataBridge migrator from working.
  • Fixed NullPointerException that occurred preventing the MPDB migrator from starting
No config changes. To update, just drag+drop.
----------, Dec 2, 2021

HuskSync 1.1.1 is a small hotfix update that fixes an issue in v1.1 for SQLite users.
  • Fixed data not being loaded from SQLite correctly.
To update, simply drag+drop.
----------, Nov 29, 2021

HuskSync 1.1 adds support for having multiple clusters of synced servers on the same BungeeCord network and fixes an issue with max health syncing. It also brings compatibility for Minecraft 1.18
  • Added multi-cluster support; you can now define "clusters" on the proxy server and then specify which cluster each spigot server is connected to in spigot configs.
    • For example, if you wanted to have a network with two skyblock servers and two survival servers, you could create a "survival" and "skyblock" cluster, with survival servers set to be on the "survival" cluster and skyblock servers on the "skyblock" cluster.
    • Clusters create new database tables and optionally can be on a different database if you wish.
  • Support for Minecraft 1.18.x
  • Fixed maximum health synchronization failing with an IllegalArgumentException (#5)
  • Fixed IllegalPluginAccessException on Bukkit server closure caused by illegal registration of redis listener task (#3)
To update from 1.0.x, you just need to drag+drop. Your config file should be automatically upgraded.
----------, Nov 28, 2021

HuskSync 1.0.3 fixes a few issues present in the launch versions of the plugin
  • Fixed an EOFException that occurred when synchronizing players without any active potion effects (#1)
  • Fixed inconsistencies with the synchronization of player's max health attributes (#2)
To update, simply drag+drop.
----------, Oct 28, 2021

Resource Information
Author:
----------
Total Downloads: 1,084
First Release: Oct 26, 2021
Last Update: Jan 26, 2025
Category: ---------------
All-Time Rating:
44 ratings
Find more info at william278.net...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings