Commit Graph

42 Commits (819421492b8f354277917ddf5d33c29d18dd193a)

Author SHA1 Message Date
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
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
William278 24453d0e1a build: Require Java 17, Minecraft 1.17.1 1 year ago
William 29bd2e1319
feat: Add `/husksync status` report menu 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 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
William 0fae3484a1
Add workflow files, test reporting, maven publishing, docs, bump version 2 years ago
William278 e7e7995e4e Bump dependencies 2 years ago
William 7536bfaaf5 Add `/userdata dump` command, for file/web dumping of user data json 2 years ago
William 3d232f97fb Shade adventure instead of bundling at runtime 2 years ago
William 0754837820 Start work on data list pagination via PagineDown, update locales 2 years ago
William 049cd8ecca Migrate plugin to MineDown/Kyori-adventure 2 years ago
William 8edbc029f8 Remove test commodore completions 3 years ago
William 258356e45d Bundle boosted-yaml, adjust shading and build scripts 3 years ago
William e1628b6448 Download jedis at runtime 3 years ago
William fa32e97564 Bump mysql-connector-java to 8.0.30 3 years ago
William 2f700b2d93 Use Commodore for rich command completion registering 3 years ago
William 5d584581f0 Add pin to usage 3 years ago
William 5fe9085483 Re-order commands 3 years ago
William 038150cff7 Update default usages 3 years ago
William d1e9f858fe Start work on Plan integration 3 years ago
William 96c6a878c4 Shrink built jar file size, work on MySQLPlayerDataBridge migrator 3 years ago
William b7709f2d6c Userdata command, API expansion, editor interfaces 3 years ago
William 1c9d74f925 Events & API work, save DataSaveCauses as part of versioning 3 years ago
William 38c261871a Basic bukkit implementation 3 years ago
William 9471e0cbff Start 2.0 rewrite
Use redis key caching, remove need for proxy plugin
Make platform independent to allow porting to other platforms
3 years ago
William da7a85dde9 Save player data on WorldSaveEvent, add config option, close #21 3 years ago
William a76aecdd23 Refactor package to net.william278; update dependencies & stop shading internal modules 3 years ago
William dd46a6cdd5 Disable native_advancement_synchronization by default 3 years ago
William ae439595ea Async data serialization and add synchronization_timeout_retry_delay config option 3 years ago
Harvels X fd42bc99be
Edit: move plugin manifests;
Edit: retrieve a version of velocity;
3 years ago
William 6719858de1 Add SSL connection option for Redis 3 years ago
William d912e28ee5 Use native_advancement_synchronization by default 3 years ago
HarvelsX 0bfdc4d528
Update bukkit config; 3 years ago
William 32a5004fc7 Add configuration option to synchronise flight 3 years ago
William cf6b81200b Cluster support 3 years ago
William 4ca8f8a633 Add update checker 3 years ago
William 520f1ea1d7 Add advancement, location and flight syncing, fix an issue that sometimes led to inconsistent syncs 3 years ago
William bd316c0b8c Make synchronisation much smoother, add Statistics and fix experience syncing 3 years ago
William dee8747041 Added Synchronisation options 3 years ago
William 2a7371be31 Initial project setup, building, setup planning, readme & redis 3 years ago
William 6742131d96 Initial commit 3 years ago