89368778f3
* Upgrade the Fabric version and rewrite the code. * Migrate the completed code of version 1.19.2. * fabric: some events. * Updated open source license to Apache 2.0. * Add Plan analyzer support. * Fix build. * `UnsupportedOperationException` * More fabric implementation work, update to v3's structure * Suppress compiler warnings * Add commands, adjust registration order * Inventory and ender chest data/serializers * Update license headers * Fixup shaded library relocations * Fix build * Potion effects & location serializers * Catch `Files.createDirectory(path);` in `#getDataFolder` * Update fabric.mod.json metadata, correct icon * Events for Fabric (#218) * Added apache commons pool2 dependency A NoClassDefFoundError would get thrown without this dependency. Relocation appears to not work very well either, so it has been excluded for now * Added in Item Pickup and Drop events and mixins * Update husksync.mixins.json * Switch drop item event to using Network Handler mixin * Implemented even more events - Interact block (place too) - Interact Entity - Use Item - Block Break - Player damage - Inventory Click (handles drops) - Player Commands * Re-implement the dropItem mixin * Set dropItem mixin as cancellable * deps: Include all bukkit runtime deps * fix/fabric: Supply AudienceProvider to `ConsoleUser` constructor * docs: credit Fabric porters :) * fix: Item deserialization now working * refactor: Remove inventory debug log * docs: Update `fabric.mod.json` * refactor: update with upstream changes * fix: dangling JD comment * fix: config file reference fixes * refactor: optimize imports, fix relocation * refactor: move tag references to common * refactor: use lombok for data / serializer methods * fix: bad annotating * refactor: adjust callback formatting * fabric: bump deps, refactor to match main branch * fabric: more serializer type work * feat: register more fabric data serializers also fixes a compile issue on bukkit, and refactors the JSON serializer to be in the common module * feat: implement remaining Fabric serializers * feat: add on-the-fly DFU for Fabric Now auto-upgrades item data to support version bumps. Also improved the schema a lil' bit. * feat: add missing mixins * feat: implement toKeep/toDrop option on Fabric * feat: apply stats on sync * build: append fabric MC version to file name * feat: add HuskSync API support for Fabric Also updates the docs * refactor: fixup a deprecation in the wrong spot * refactor: optimize fabric item serializing in-line with Bukkit * feat: implement viewer GUIs on Fabric * docs: Fabric is in Alpha for now --------- Co-authored-by: hanbings <hanbings@hanbings.io> Co-authored-by: Stampede <carterblowers01@gmail.com> |
6 months ago | |
---|---|---|
.github | 10 months ago | |
bukkit | 6 months ago | |
common | 6 months ago | |
docs | 6 months ago | |
fabric | 6 months ago | |
gradle/wrapper | 6 months ago | |
images | 1 year ago | |
paper | 6 months ago | |
test | 6 months ago | |
.gitignore | 1 year ago | |
HEADER | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 6 months ago | |
build.gradle | 6 months ago | |
gradle.properties | 6 months ago | |
gradlew | 6 months ago | |
gradlew.bat | 2 years ago | |
settings.gradle | 6 months ago |
README.md
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+.
- 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. - Start, then stop every server to let HuskSync generate the config file.
- Navigate to the HuskSync config file on each server and fill in both your database and Redis server credentials.
- 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.
Links
- Docs — Read the plugin documentation!
- Spigot — View the Spigot resource page (Also: Polymart, Craftaro, BuiltByBit)
- Issues — File a bug report or feature request
- Discord — Get help, ask questions (Purchase required)
- bStats — View plugin metrics
© William278, 2023. Licensed under the Apache-2.0 License.