Commit Graph

321 Commits (2df9fd897a9d3031cea6b6b7dafed3cd22d24cfb)

Author SHA1 Message Date
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
11 months ago
William 4dfbc0e32b
fix: more gracefully handle platform mismatches 11 months ago
William 07d0376dd6
docs: fix grammar in config comment 11 months ago
William d23ea087c1
refactor: Redis -> 𝓡𝓮𝓭𝓲𝓼 11 months ago
William ef3dc7e602
fix: bad null annotations on legacy conversion 11 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
11 months ago
William 8463e1bb7a
fix: Remove legacy MineDown calls 11 months ago
William 5456b232f0
fix: don't escape double underscores in text 11 months ago
William b0e585841c
refactor: use system locale for date formatting 11 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>
11 months ago
William278 48f7037898 fix: update license headers 12 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>
12 months ago
William eeb5e57c1e
fix: shutdown not clearing cached data 1 year ago
William 6fbef032bc
locales: update zh-tw by lin_ak90 1 year ago
William 318aacd432
refactor: minor tidy up 1 year ago
Timon Michel ba1b2ff62e
fix: improve event cancellation logic for better plugin compat (#246) 1 year ago
William278 67ef4888da fix: death save updating player 1 year ago
William278 a5d3015c6e feat: allow customizable save / update causes 1 year ago
William278 131a364f53 fix: cache not cleared on `/userdata delete`, close #245 1 year ago
William 19636d9447
refactor: optimize imports 1 year ago
William f803a0b57b
refactor: revert `keys` change 1 year ago
William 28afffe95e
refactor/redis: use `scan` instead of `keys` 1 year ago
William 12e223618d
refactor: data save event order processing, use new method in DataSyncer (#243)
* fix: fire DataSaveEvent before disconnect

* fix: revert rename `addSnapshot`

* docs: mention `addSnapshot` firing the API event

* refactor: use DataSyncer method for event saving, close #242

* fix: trailing semicolon
1 year ago
William e580c4f2bd
fix: LOCKSTEP preventing offline inv updates, close #229 1 year ago
William fa7f6f0d6e
fix: exception when reading server defaults 1 year ago
William 267cf1ff35
fix: wrong URL on startup exception 1 year ago
William 08944ffd35
refactor: update a few config comments 1 year ago
William c75114b858
deps: bump ConfigLib to 4.3.0 1 year ago
William 350a8b864d
fix: bad ConfigProvider logic 1 year ago
William278 df0bd7a7cb refactor: actually don't use lombok for API just yet 1 year ago
William278 9fc9e8caf4 refactor: use lombok in a few other places 1 year ago
William278 2e3db2fffa refactor: use Guava methods in various places 1 year ago
William 530b3ef24d
refactor: Migrate from BoostedYaml to Exll's ConfigLib (#233)
* feat: start work on moving to Exll's configlib

* refactor: Fully migrate to Exlll's configlib

* refactor: Optimize imports
1 year ago
William278 85706d97c5 refactor: move `unregister` to common API module 1 year ago
William278 685431a40d api: add cross-platform API support 1 year ago
William278 280e90e297 refactor: use guard clause in thread unlock logic 1 year ago
Rubén 31920d056d
refactor: Reconnect to Redis when connection lost (#230)
* Add redis reconnection

* Add separated method to handle thread unlock

* Add reconnection time constant
1 year ago
William278 6641e11fd9 fix: high latency redis environments firing data updates twice 1 year ago
William278 66bbde0b5d command: update translator credits in AboutMenu 1 year ago
WinTone01 7dde6423e4
Update tr-tr.yml (#228) 1 year ago
William278 0eac12e3f8 locales: Add id-id, courtesy of Wirayuda5620 1 year ago
Wirayuda5620 5df58e4ef9
Update HuskSyncCommand.java AboutMenu
hehe 😋
1 year ago
Wirayuda5620 4a6583d8bd
Indonesian translation for HuskSync 1 year ago
jhqwqmc 059ee6f660
locales: Update zh-cn.yml (#224)
Correction
1 year ago
William bf9f29ffe9
refactor: Improve display of `/husksync status` 1 year ago
William 29bd2e1319
feat: Add `/husksync status` report menu 1 year ago
William adbc264532
Merge remote-tracking branch 'origin/master' 1 year ago
jhqwqmc f9cfec7d03
Update zh-cn.yml (#220) 1 year ago
William d4f61bd646
refactor: catch `Throwable`, not `Exception` 1 year ago
William 9cf6d1eab6
refactor: change default sync mode to `LOCKSTEP` 1 year ago
William 33c2eb2237
refactor: Use cloud `☁` for server for HuskHomes consistency 1 year ago
William 299586aa86
refactor: Rename `DATA_UPDATE` -> `LATEST_SNAPSHOT` 1 year ago
William 05c988f2c7
refactor: Extend `DATA_UPDATE` Redis cache time on `LOCKSTEP` mode 1 year ago
William 8e0ad76968
refactor: Improve `getUserCheckedOut` debug log 1 year ago
William 4db162e78f
refactor: Even more minor debug logging tweaks 1 year ago
William 272bc1278a
refactor: More minor debug logging tweaks 1 year ago
William 35fdcf7106
refactor: Further improve debug log messages 1 year ago
William 48e087a3d7
refactor: Improve debug log wording for `getUserCheckedOut` 1 year ago
William ca000197e4
refactor: Further improvements to debug messages 1 year ago
William a6bab88cee
refactor: Add debug log for `listenForRedis` timeout 1 year ago
William f0c64df439
refactor: Improve debug logging messages 1 year ago
William ac5ab56717
fix: Don't wrap `saveUserData` in `runAsync` twice 1 year ago
William 4c2bb5c6df
fix: Get correct platform Audience for OnlineUsers 1 year ago
William fb069296e1
refactor: Use native adventure implementation on Paper 1 year ago
Roman Alexander 22eedc8522
feat: Add support for Redis Sentinels (#216)
* Add support for Redis Sentinels

* Add some comments
1 year ago
William278 5ec0f1b098 Support MC 1.20.4, improve timestamp exceptions 1 year ago
William 83e27cca83
locales: Add Korean (ko-kr) courtesy of cada3141 1 year ago
Joo200 029407613f
locales: add new localization to de-de (#215) 1 year ago
Daniil Nartsissov 3d6ff7c30b
Save cause localization support (#214) 1 year ago
Daniil Nartsissov 5833ce955f
locales: add ru-ru localization (#211) 1 year ago
WinTone01 7b8c75dbeb
Create tr-tr.yml (#207) 1 year ago
Ceddix c09fde4c36
Update German (de-de) locales, fix broken link in README (#196)
* updated the locales url

* updated German translation
1 year ago
Missing_Love 6fc827dedf
Update zh-cn.yml (#184) 1 year ago
Missing_Love b8aa1d9701
Update zh-cn.yml (#183)
Update Chinese Simplified Translation
1 year ago
William 51116cbdfb
docs: Minor updates to links/legacy migration 1 year ago
William 289227e763
locales: Remove redundant comments in Japanese 1 year ago
William 3b8a9e4ed1
locales: Fix Dutch filename 1 year ago
William 7db3ed678f
Paper plugin support, save player itemsToKeep rather than drops if not empty (#179)
* Paper plugin support, save itemsToKeep if present, close #172

* Fixup wrong packages, suppress a warning

* Update docs, add settings for death saving, reorganise config slightly

* Improve default server name lookup

* docs: Add note on Unsupported Versions

* docs: Minor Sync Modes tweaks
1 year ago
William cae17f6e68
Introduce new lockstep syncing system, modularize sync modes (#178)
* 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
1 year ago
Arno Keesman c2b9e6c932
add Dutch translation (#176) 1 year ago
Namiu/うにたろう 37a671dae9
Update ja-jp.yml (#170) 1 year ago
William 55e443cd49
Improve error handling on data sync 1 year ago
William 575122e6dd
Tweak max health syncing calculation, add config option 1 year ago
William 856cbb9caa
Allow conversion of v1-v3 data snapshots 1 year ago
William 7034a97d3a
Fix wrong timestamp/UUID being used for legacy conversion (#167)
* Maintain legacy snapshot IDs when updating

* Also maintain timestamps during conversion

* Actually implement timestamp fix in LegacyConverter
1 year ago
William 635edb930f
Fix wrong syntax message on `/userdata restore`, Close #166 1 year ago
Villag3r_ 7c9ac37eb7
Update it-it.yml (#163) 1 year ago
William 105f65c93a
v3.0: New modular, more compatible data format, new API, better UX (#160)
* 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
1 year ago
William 9018ad02e1
settings: Fix wrong comment 1 year ago
William 62095364ce
2.2.8: Explicitly specify MariaDB Driver class name 2 years ago
William b73de81519
Add missing Maria schema 2 years ago
William 12e882fe22
v2.2.6: Crafting inventory safety, Maria v11 support (#153)
* Clear player inventory crafting slots on sync

* Bundle Maria driver for v11 support
2 years ago
Joo200 97ad608d56
Add mariadb protocol option type (#145)
Co-authored-by: William <will27528@gmail.com>
2 years ago
William f6aab54d4d
license: Relicense under Apache-2.0 2 years ago
kFor c306d700ce
Option to blacklist all commands (#138)
* Option to blacklist all commands

* blacklist all commands by default

---------

Co-authored-by: William <will27528@gmail.com>
2 years ago
William 6bd12dc000
Update DesertWell to 2.0.2, improve adventure API usage 2 years ago
William 1afbd3753a
Merge remote-tracking branch 'origin/master'
# Conflicts:
#	.github/workflows/java_ci.yml
#	build.gradle
2 years ago
William 38a063420b
Add license headers 2 years ago
William 7bb4bff485
Make case conversion operations use the English locale 2 years ago
小蔡 0c7e052d44
Update zh-tw.yml (#124) 2 years ago