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 3a32d481c4 Add rich-syntax-highlighting.png 2 years ago
.github/workflows MPDBConverter over jitpack 2 years ago
.scripts MPDBConverter over jitpack 2 years ago
api Use Commodore for rich command completion registering 2 years ago
bukkit Remove test commodore completions 2 years ago
common Bundle boosted-yaml, adjust shading and build scripts 2 years ago
gradle/wrapper Initial commit 3 years ago
images Add rich-syntax-highlighting.png 2 years ago
plugin Jitpack: Publish API docs and sources 2 years ago
.gitignore Refactor package to net.william278; update dependencies & stop shading internal modules 3 years ago
LICENSE Small typo fix 3 years ago
README.md Update README.md 2 years ago
build.gradle Bundle boosted-yaml, adjust shading and build scripts 2 years ago
gradle.properties Bundle boosted-yaml, adjust shading and build scripts 2 years ago
gradlew Fix gradlew permissions, remove old graphic 2 years ago
gradlew.bat Initial commit 3 years ago
jitpack.yml MPDBConverter over jitpack 2 years ago
settings.gradle Start 2.0 rewrite 2 years ago

README.md

HuskSync Banner

Github Actions Discord

Documentation, Guides & API · Resource Page · Bug Reports

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

Features

  • Synchronise inventories, ender chests, advancements, statistics, experience points, health, max health, hunger, saturation, potion effects, persistent data container tags, game mode, location and more across multiple proxied servers.
  • Create and manage "snapshot" backups of user data and roll back users to previous states on-the-fly. (/userdata)
  • Preview, list, delete, restore & pin user data snapshots in-game with an intuitive menu.
  • Examine the contents of player's inventories and ender chests on-the-fly. (/inventory, /enderchest)
  • Hooks with your Player Analytics web panel to provide an overview of user data.
  • Supports segregating synchronisation across multiple distinct clusters on one network.

Requirements

  • A MySQL Database (v8.0+). MariaDB is not currently supported - sorry!
  • A Redis Database (v5.0+)
  • Any number of proxied Spigot servers (Minecraft v1.16.5+)

Setup

  1. Place the plugin jar file in the /plugins/ directory of each Spigot 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 (~/plugins/HuskSync/config.yml) and fill in both the MySQL and Redis database credentials.
  4. Start every server again and synchronistaion will begin.

Building

To build HuskSync, simply run the following in the root of the repository:

./gradlew clean build

License

HuskSync is a premium resource. This source code is provided as reference only for those who have purchased the resource from an official source.

Contributing

A code bounty program is in place for HuskSync, where developers making significant code contributions to HuskSync may be entitled to a license at my discretion to use HuskSync in commercial contexts without having to purchase the resource. Please read the information for contributors in the LICENSE file before submitting a pull request.

Translation

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.

bStats

This plugin uses bStats to provide me with metrics about its usage:

You can turn metric collection off by navigating to ~/plugins/bStats/config.yml and editing the config to disable plugin metrics.


© William278, 2022. All rights reserved.