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.
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.
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.
- 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.
- 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
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.
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.
- Fixed an IllegalArgumentException when a player joined the game on Paper 1.20.4 and earlier servers
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.
- The
- 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.
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.
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.
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.
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 toSerializer
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.
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
andhusksync: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 newhusksync:attributes
husksync:game_mode
– Methods to get/set if the player is flying/can fly have been deprecated for removal. Use the newhusksync: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 useBukkitSerializer.Json<Type>
as their serializer. Since these serializers were internal, this shouldn't introduce any breaking changes, but is noted here nonetheless.
- Added
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)
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.
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.
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.
- 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)
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
andhusksync-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.
- APIs are now published per-platform;
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!)
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.
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.
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)
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.
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 defaultDELAY
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.
- Note this may affect compatibility on some edge-case server software/version combos.
- 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.
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.