HuskSync

A modern, cross-server player data synchronisation system

APACHE-2.0 License

Stars
136

Bot releases are hidden (Show)

HuskSync - HuskSync 2.0 - Rewrite, no more proxy plugin, data backups & more!

Published by WiIIiam278 over 2 years ago

HuskSync 2.0 promotional splash

⚠️ 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!

HuskSync - HuskSync 1.4.1 - Hotfix

Published by WiIIiam278 over 2 years ago

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.

HuskSync - HuskSync 1.4 - 1.19, New locales, periodic data saving, bug fixes

Published by WiIIiam278 over 2 years ago

2022-06-07_20 25 26

HuskSync 1.4 is now available and supports Minecraft 1.19.x, adds a number of new locales, saves player data on the WorldSaveEvent, introduces a number 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!

HuskSync - HuskSync 1.4-preview

Published by WiIIiam278 over 2 years ago

⚠️ Snapshot release - for preview testing only!

Changes for HuskSync 1.4 preview

  • 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.

Do not deploy on production.

HuskSync -

Published by WiIIiam278 over 2 years ago

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.

  • 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
HuskSync - HuskSync 1.3

Published by WiIIiam278 almost 3 years ago