Releases: WiIIiam278/HuskSync
HuskSync 3.6 - Minecraft 1.21 support
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 binaries are only distributed on Spigot, Polymart, or BuiltByBit.
HuskSync 3.5.3 - Hotfix
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 binaries are only distributed on Spigot, Polymart, or BuiltByBit.
HuskSync 3.5.2 - PacketEvents support, fixes
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 binaries are only distributed on Spigot, Polymart, or BuiltByBit.
HuskSync 3.5.1 - Minecraft 1.20.5 / 1.20.6 support
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 binaries are only distributed on Spigot, Polymart, or BuiltByBit.
HuskSync 3.5 - Folia, PostgreSQL, Attributes syncing, & more
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 binaries are only distributed on Spigot, Polymart, or BuiltByBit.
HuskSync 3.4 - MongoDB 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 binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.
HuskSync 3.3.3 - Hotfix
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 binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.
HuskSync 3.3.2 - Bug fixes
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 isLOCKSTEP
(#242) - Fixed
/userdata delete
not clearing cached user data if the sync mode is set toLOCKSTEP
. (#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.
📋 HuskSync binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.
HuskSync 3.3.1 - Bug fixes
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.
📋 HuskSync binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.
HuskSync 3.3 - Platform API publishing, improvements
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 binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.