A modern, cross-server player data synchronisation system
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
William 2fcd58fc18
feat: correctly apply keyed attribute modifiers, close #326
We need to construct attributes with their key if possible to avoid stacking. Uses reflection :( to do this.

Also adds a bit of error checking to health scale syncing
5 months ago
.github ci: bump gradle/gradle-build-action from 2 to 3 (#235) 10 months ago
bukkit feat: correctly apply keyed attribute modifiers, close #326 5 months ago
common feat: correctly apply keyed attribute modifiers, close #326 5 months ago
docs feat: add the ability to disable HuskSync commands 5 months ago
fabric deps: bump Uniform to 1.1.8 5 months ago
gradle/wrapper build: bump gradle to 8.8, uniform to 1.1.3 5 months ago
images v3.0: New modular, more compatible data format, new API, better UX (#160) 1 year ago
paper feat: correctly apply keyed attribute modifiers, close #326 5 months ago
test build(deps): bump urllib3 from 2.0.7 to 2.2.2 in /test (#324) 5 months ago
.gitignore v3.0: New modular, more compatible data format, new API, better UX (#160) 1 year ago
HEADER license: Relicense under Apache-2.0 1 year ago
LICENSE v3.0: New modular, more compatible data format, new API, better UX (#160) 1 year ago
README.md docs: update maven README badge 5 months ago
build.gradle build: adjust repos order 5 months ago
gradle.properties feat: correctly apply keyed attribute modifiers, close #326 5 months ago
gradlew build: bump gradle to 8.8, uniform to 1.1.3 5 months ago
gradlew.bat build: bump gradle to 8.8, uniform to 1.1.3 5 months ago
settings.gradle feat: add support for Fabric targeting Minecraft 1.20.1 (#217) 6 months ago

README.md

HuskSync
Spigot Setup Docs Issues


HuskSync is a modern, cross-server player data synchronization system that enables the comprehensive synchronization of your user's data across multiple proxied servers. It does this by making use of Redis and a MySQL/Mongo/PostgreSQL to optimally cache data while players change servers.

Features

Seamless synchronization — Utilises optimised Redis caching when players change server to sync player data super quickly for a seamless experience.

Complete player synchronization — Sync inventories, Ender Chests, health, hunger, effects, advancements, statistics, locked maps & more—no data left behind!

Backup, restore & rotate — Something gone wrong? Restore players back to a previous data state. Rotate and manage data snapshots in-game!

Import existing data — Import your MySQLPlayerDataBridge data—or from your existing world data! No server reset needed!

Works great with Plan — Stay in touch with your community through HuskSync analytics on your Plan web panel.

Extensible API & open-source — Need more? Extend the plugin with the Developer API. Or, submit a pull request through our code bounty system!

Ready? It's syncing time!

Setup

Requires a MySQL/Mongo/PostgreSQL database, a Redis (v5.0+) server and a network of Spigot (1.17.1+) or Fabric (1.20.1) Minecraft servers, running Java 17+.

  1. Place the plugin jar file in the /plugins or /mods directory of each Spigot/Fabric server. You do not need to install HuskSync as a proxy plugin.
  2. Start, then stop every server to let HuskSync generate the config file.
  3. Navigate to the HuskSync config file on each server and fill in both your database and Redis server credentials.
  4. Start every server again and synchronization will begin.

Development

To build HuskSync, simply run the following in the root of the repository (building requires Java 17). Builds will be output in /target:

./gradlew clean build

License

HuskSync is licensed under the Apache 2.0 license.

Contributions to the project are welcome—feel free to open a pull request with new features, improvements and/or fixes!

Support

Due to its complexity, official binaries and customer support for HuskSync is provided through a paid model. This means that support is only available to users who have purchased a license to the plugin from Spigot, Polymart, or BuiltByBit and have provided proof of purchase. Please join our Discord server if you have done so and need help!

Translations

Translations of the plugin locales are welcome to help make the plugin more accessible. Please submit a pull request with your translations as a .yml file.


© William278, 2023. Licensed under the Apache-2.0 License.