HuskSync

A modern, cross-server player data synchronisation system

APACHE-2.0 License

Stars
136

Bot releases are visible (Hide)

HuskSync - HuskSync 3.6.8 - MC 1.21.1 support Latest Release

Published by WiIIiam278 2 months ago

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 - HuskSync 3.6.7 - Bug fixes, attributes config

Published by WiIIiam278 2 months ago

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.

HuskSync - HuskSync 3.6.6 - Bug fixes

Published by WiIIiam278 4 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.6.5 - Bug fixes

Published by WiIIiam278 4 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.6.4 - Attributes fix

Published by WiIIiam278 4 months ago

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 binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.6.3 - Hotfix

Published by WiIIiam278 4 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.6.2 - Hotfix

Published by WiIIiam278 4 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.6.1 - Bug fixes

Published by WiIIiam278 4 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.6 - Minecraft 1.21 support

Published by WiIIiam278 4 months ago

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 - HuskSync 3.5.3 - Hotfix

Published by WiIIiam278 5 months ago

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 - HuskSync 3.5.2 - PacketEvents support, fixes

Published by WiIIiam278 5 months ago

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 - HuskSync 3.5.1 - Minecraft 1.20.5 / 1.20.6 support

Published by WiIIiam278 6 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.5 - Folia, PostgreSQL, Attributes syncing, & more

Published by WiIIiam278 6 months ago

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)

📋 HuskSync binaries are only distributed on Spigot, Polymart, or BuiltByBit.

HuskSync - HuskSync 3.4 - MongoDB support

Published by WiIIiam278 8 months ago

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 - HuskSync 3.3.3 - Hotfix

Published by WiIIiam278 8 months ago

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 - HuskSync 3.3.2 - Bug fixes

Published by WiIIiam278 8 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.

HuskSync - HuskSync 3.3.1 - Bug fixes

Published by WiIIiam278 9 months ago

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 - HuskSync 3.3 - Platform API publishing, improvements

Published by WiIIiam278 9 months ago

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!)

📋 HuskSync binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.

HuskSync - HuskSync 3.2.1 - Bug fixes, /husksync status

Published by WiIIiam278 10 months ago

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 binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.

HuskSync - HuskSync 3.2 - Bug fixes & improvements

Published by WiIIiam278 10 months ago

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.

📋 HuskSync binaries are only distributed on Spigot, Polymart, Craftaro, or BuiltByBit.