Commit Graph

317 Commits (8862e6cd700fff2ef0e5c94f12d52b71852c8c1f)

Author SHA1 Message Date
William 0b29de9efc
fix: update documentation, help menu access for migrators 5 months ago
William d4e33aa9d2
fix: ensure data version is passed to deserialize methods
Fixes an issue where upgraded stacks would only have a size of 1
5 months ago
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
William 268b279fdf
feat: add the ability to disable HuskSync commands 5 months ago
William a8ca3314d8
refactor: minor userdata dump refactor 5 months ago
William 2bdd3dae37
fix: enable game mode syncing by default
not sure why this is off by default
5 months ago
William 0e706d36c4
refactor: use Uniform for native command support (#323)
* refactor: use Uniform for commands

* refactor: remove commodore

* fix: update Uniform, fix commands

* fix: bump uniform, fix commands on fabric

* feat: use new Uniform command permission system

* test: target 1.21
5 months ago
William 3d5395e5ae
refactor: Remove debug print statements 5 months ago
Stampede 6286bbe2ad
fix: mongo breaking due to mixed use of UUIDs and strings (#321)
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.
5 months ago
William 24ba209f8f
feat: support 1.21
Fixes attribute modifier syncing, adjust apache dep
5 months ago
William 05d588f681
fix: wrong syntax message on `/userdata` 5 months ago
William 89368778f3
feat: add support for Fabric targeting Minecraft 1.20.1 (#217)
* 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
William e3fb1762a1
fix: display correct NotRegisteredException cause 6 months ago
William 516c243df8
refactor: throw `NotRegisteredException` if API class provider is bad 6 months ago
小蔡 549f013e0f
locales: update zh-tw.yml (#316)
* Update zh-tw.yml

I also corrected some redundant words.

* Update zh-tw.yml
6 months ago
William 4fa7106a46
refactor: gracefully handle missing data deps 6 months ago
William e0b81e4c76
refactor: add serialization identifier dependencies for applying data (#309)
* 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
6 months ago
William 44c652c452
Merge remote-tracking branch 'origin/master' 6 months ago
William 8ad4158ec0
docs: document PacketEvents support 6 months ago
AlexDev_ cff1c8f982
feat: added PacketEvents support as ProtocolLib alternative (#296) 6 months ago
Preva1l 550ea26097
fix: MongoDB duplicate user table entries & not updating cached username (#301) 7 months ago
Preva1l 2b1e72a42e
fix: wrong type in PostgreSQL schema (#299)
* Started impl for mongo

* fix silly mistake with postgresql

* fix silly mistake with postgresql
7 months ago
William e35dcf3aad
feat: Minecraft 1.20.5/6 support (#295)
* 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
7 months ago
IbanEtc 68ec79add6
locales: add French (fr-fr) locales, courtesy of IbanEtchep (#293)
* french translation

* locales: fix line spacing in `fr-fr`

* locales: credit French (fr-fr)

---------

Co-authored-by: William <will27528@gmail.com>
7 months ago
William 525f15e65b
locales: correct typo in `error_invalid_data`, fix #283 7 months ago
jhqwqmc 087c787ec2
locales: update zh-cn.yml (#281)
* Update zh-cn.yml

* Update zh-cn.yml
8 months ago
William 7218390f65
feat: Add support for Folia (#280)
* feat: Add support for Folia

* feat: fix folia advancement stuff

* feat: fix double negation (whoops)
8 months ago
William bd312c48ea
refactor: Improve data validation, allow deletion of invalid snapshots (#279)
* 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`
8 months ago
William 7941745ed0
docs: update config file docs 8 months ago
William 35c23c7970
refactor: remove some unused code, cleanup 8 months ago
William 4bb38f67d3
refactor: use registry for statistics
also updates BukkitKeyedAdapter methods to use the registries and moves to just using the Json serializer for Bukkit locations
8 months ago
William 98cf42065b
refactor: slightly simplify checkout logic 8 months ago
William 8293d767da
feat: add config to skip certain attributes 8 months ago
William 7b8fb92737
fix: ICV modifying offline inventories via API, close #275 8 months ago
William 676ba7a10a
feat: Add attribute syncing (#276)
* refactor: add attribute syncing

* fix: don't sync unmodified attributes

* fix: register json serializer for Attributes

* fix: improve Attribute API methods

* docs: update Sync Features

* refactor: make attributes a set

Because they're unique (by UUID)
8 months ago
William a03d540938
fix: DateTimeException when running `/userdata` 8 months ago
William 2f5ddf6164
feat: add ProtocolLib support for deeper-level packet cancellation (#274)
* 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
8 months ago
William 4dfbc0e32b
fix: more gracefully handle platform mismatches 8 months ago
William 07d0376dd6
docs: fix grammar in config comment 8 months ago
William d23ea087c1
refactor: Redis -> 𝓡𝓮𝓭𝓲𝓼 8 months ago
William ef3dc7e602
fix: bad null annotations on legacy conversion 8 months ago
William a35e83a424
feat: Move flight status into its own data type, use lombok for data class (#273)
* refactor: use lombok, separate flight, close #191

* refactor: suppress some warnings

* refactor: suppress unused `from` warnings

* refactor: correct bad null-annotations on Items

* refactor: fix null annotation on `getStack`

* refactor: override methods for getting flight status

* docs: add deprecation docs for flight in gamemode data
8 months ago
William 8463e1bb7a
fix: Remove legacy MineDown calls 8 months ago
William 5456b232f0
fix: don't escape double underscores in text 8 months ago
William b0e585841c
refactor: use system locale for date formatting 8 months ago
Preva1l 4c0addfd67
feat: PostgreSQL, Mongo Atlas & Replica Support (#255)
* Started impl for mongo

* added docs

* refactor of the mongo code, made mongodb artifacts download at run time, tested and working

* complete all change requests

* remove mongo and bson from relocations as they arnt needed

* changed the config

* updated docs

* not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null

* added postgres support (closes https://github.com/WiIIiam278/HuskSync/issues/212)

* add support for mongodb atlas, added atlas and postrgres to docs, update the config example in docs, also updates mongodb driver bc apparently i was special and very very out of data

* Rework how mongo connections are handled, **breaks config for mongo only**, allows for MongoDB Atlas, normal MongoDb AND MongoDB replica sets via the parameters in advanced mongo settings, added try and catch on all mongo operations so that it actually throws instead of a cutsie little warning

* small doc change

* whoops forgot to instantiate MongoCollectionHelper, and added missing step from docs for atlas users

* why thats a tad embarrassing (grammar mistake)

* add cluster id to `/husksync status`, shows "MongoDB Atlas" in status if using mongodb atlas

---------

Co-authored-by: William <will27528@gmail.com>
8 months ago
William278 48f7037898 fix: update license headers 9 months ago
Preva1l 67dddf0cfa
feat: Add support for MongoDB data storage (#250)
* Started impl for mongo

* added docs

* refactor of the mongo code, made mongodb artifacts download at run time, tested and working

* complete all change requests

* remove mongo and bson from relocations as they arnt needed

* changed the config

* updated docs

* not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null not null

---------

Co-authored-by: William <will27528@gmail.com>
9 months ago
William eeb5e57c1e
fix: shutdown not clearing cached data 9 months ago
William 6fbef032bc
locales: update zh-tw by lin_ak90 9 months ago