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
All UUIDs are now read and written as actual UUID objects, which was before causing errors due to a mixed use of UUID objects and string representations.
* 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>
* refactor: add serialization identifier dependencies for applying data
* fix: correct issues with deterministic sync order
* refactor: adjust base data type dependencies
* refactor: cleanup imports/trim whitespace
* docs: Document Identifier dependencies
* feat: fix issues with health scaling
* feat: start 1.20.5 update testing
nbt-api seems to work great already :)
* feat: add DFU support for legacy upgrade
Adds an optional overload to `deserialize` to support passing the MC Version of the snapshot data
* refactor: `clone` ItemStack[] bukkit data arrays, close#294
Don't perform async operations on mutable player data
* feat: move validation to be on unpack
* refactor: add validation and handling for invalid data to UX
* fix: `runAfter` not firing on unpack failure
* locales: minor update to `data_list_item_invalid`
* feat: add support for ProtocolLib packet-level state cancelling
* refactor: move commands to event listener, document ProtocolLib support
* docs: make Setup less claustrophobic
* fix: remove `@Getter` on `PlayerPacketAdapter`
* build: add missing license headers
* fix: inaccessible method on Paper
* test: add ProtocolLib to network spin test
* fix: whoops I targeted the wrong packets
* fix: bad command disabled check logic
* fix: final protocollib adjustments