* 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>
* Start work on modular sync systems
* Add experimental lockstep sync system, close#69
* Refactor RedisMessageType enum
* Fixup lockstep syncing
* Bump to 3.1
* Update docs with details about the new Sync Modes
* Sync mode config key is `mode` instead of `type`
* Add server to data snapshot overview
* API: Add API for setting data syncers
* Fixup weird statistic matching logic
* Start work on v3
* More work on task scheduling
* Add comment to notification display slot
* Synchronise branches
* Use new HuskHomes-style task system
* Bump to 2.3
* Remove HuskSyncInitializationException.java
* Optimise database for MariaDB
* Update libraries, move some around
* Tweak command registration
* Remove dummyhusksync
* Fixup core synchronisation logic to use new task system
* Implement new event dispatch subsystem
* Remove last remaining future calls
* Remove `Event#fire()`
* Refactor startup process
* New command subsystem, more initialization improvements, locale fixes
* Update docs, tweak command perms
* Reduce task number during data setting
* add todo
* Start work on data format / serialization refactor
* More work on Bukkit impl
* More serialization work
* Fixes to serialization, data preview system
* Start legacy conversion skeleton
* Handle setting empty inventories
* Start on-the-fly legacy conversion work
* Add advancement conversion
* Rewrite advancement get / apply logic
* Start work on locked map persistence
* More map persistence work
* More work on map serialization
* Move around persistence logic
* Add testing suite
* Fix item synchronisation
* Finalize more reliable locked map persistence
* Remove deprecated method call
* remove sync feature enum
* Fix held item slot syncing
* Make data types modular and API-extensible
* Remove some excessive debugging, minor refactor
* Fixup date formatting, improve menu UIs
* Finish up legacy data converting
* Null safety in item stack serializaiton
* Fix relocation of nbtapi, update dumping docs
* Add v1/MPDB Migrators back in
* Fix pinning/unpinning data not working
* Consumer instead of Function for editing data
* Show file size in DataSnapshotOverview
* Fix getIdentifier always returning empty
* Re-add items and inventory GUI commands
* Improve config file, fixup data restoration
* Add min time between backups (more useful backups!)
* More work on backups
* Fixup backup rotation frequency
* Remove stdout debug print in `#getEventPriority`
* Improve sync complete locale logic, fix synchronization spelling
* Remove `static` on exception
* Use dedicated thread for Redis, properly unsubscribe
* Refactor `player` package -> `user`
* `PlayerDataHolder` -> `UserDataHolder`
* Make `StatisticsMap` public, but `@ApiStatus.Internal`
* Suppress unused warnings on `Data`
* Add option to disable Plan hook
* Decompress legacy data before converting
* Decompress bytes in fromBytes
* Check permission node before serving TAB suggestions
* Actually convert legacy item stack data
* Fix syntax errors
* Minor method refactor in items command
* Fixup case-sensitive parsing in HuskSync command
* Start API work
* More work on API, fix potion effects
* Fix cross-server, config formatting for auto-pinned issue
* Fix confusion with UserData command, update docs images
* Update commands docs
* More docs updating
* Fix sync feature enabled/disabled checking logic
* Fix `#isCustom()`
* Enable persistent_data syncing by default
* docs: update Sync-Features config snippet
* docs: correct typo in Sync Features
* More API work
* bukkit: slightly optimized schedulers
* More API work, various refactorings
* docs: Start new API docs
* bump dependencies
* Add some basic unit tests
* docs: Correct typos
* More docs work, annotate DB methods as `@Blocking`
* Encapsulate `RedisMessage`, minor optimisations
* api: Simplify `#getCurrentData`
* api: Simplify `editCurrentData`, using `ThrowingConsumers` for better error handling
* docs: More Data Snapshot API documenting
* docs: add TOC to Data Snapshot API page
* bukkit: Make data types extend BukkitData
* Move where custom data is stored, finish up Custom Data API docs
* Optimise imports
* Fix `data_manager_advancements_preview_remaining` locale
* Fix advancement and playtime previews
* Fix potion effect deserialization
* Make snapshot_backup_frequency default to 4, more error handling/logging
* docs: Add ToC to Custom Data API
* docs: Minor legacy API tweaks
* Remove some unneeded catch logic
* Suppress a few warnings
* Fix Effect constructor being supplied in wrong order