Skip to content

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

Compare
Choose a tag to compare
@WiIIiam278 WiIIiam278 released this 13 Apr 14:21
· 209 commits to master since this release
087c787

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.