Commit Graph

321 Commits (c949c976d62ba0faf160ac33f100f5340ca00617)

Author SHA1 Message Date
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 5840f61571
Fix tests 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
William 7ed7d0a29e
Add additional cast checking to PDC tag fetching, cast via complex type (#118) 2 years ago
William a9b1070725
Encapsulate Settings, tweak keys, add empty dead player save option, close #73 2 years ago
William 5a000add98
Fix deadlock on busy servers with small thread pools, close #100 2 years ago
Ceddix ea822b0f4b
fixed some issues I made (#101) 2 years ago
William 1d7f6a8d8b
refactor: Use mappings class for PDC tag type handling 2 years ago
evlad 2d1d8f1ab6
Sync lock: Cancel item frame interaction, add command blacklist (#84)
Co-authored-by: William <will27528@gmail.com>
2 years ago
William fe89e7b770 Fix tests 2 years ago
William f6663f0c09 Refactor; consolidate Logger and ResourceReader, simplify certain method arguments 2 years ago
William c2c5a424fb Add checks against the user being an NPC 2 years ago