Releases: WiIIiam278/HuskSync
HuskSync 2.0.2 - MariaDB comparability fix, rich command completions
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.
HuskSync 2.0.1 - Fixes & locale updates
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.
HuskSync 2.0 - Rewrite, no more proxy plugin, data backups & more!
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 1.4.1 - Hotfix
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 1.4 - 1.19, New locales, periodic data saving, bug fixes
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:
- 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.
- Packages have been refactored:
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 1.4-preview
⚠️ 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:
- 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.
- Packages have been refactored:
Do not deploy on production.
1.3.2
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 1.3
Slight cleanup and docs updating