Commit Graph

305 Commits (3d5395e5aee0be160349f34b044bfd56fb0c3226)

Author SHA1 Message Date
William 55e443cd49
Improve error handling on data sync 1 year ago
William b63e1bd283
Fixup adapting health when scaling 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
dependabot[bot] 1d3e4b7a20
Bump de.tr7zw:item-nbt-api from 2.12.0-SNAPSHOT to 2.12.0 (#165)
Bumps de.tr7zw:item-nbt-api from 2.12.0-SNAPSHOT to 2.12.0.

---
updated-dependencies:
- dependency-name: de.tr7zw:item-nbt-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 year ago
dependabot[bot] 563b9e146e
Bump de.tr7zw:item-nbt-api from 2.12.0-RC1 to 2.12.0-SNAPSHOT (#164)
Bumps de.tr7zw:item-nbt-api from 2.12.0-RC1 to 2.12.0-SNAPSHOT.

---
updated-dependencies:
- dependency-name: de.tr7zw:item-nbt-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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 bd83c8935d
Tweak database connection confirmation messages 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
1 year ago
Joo200 97ad608d56
Add mariadb protocol option type (#145)
Co-authored-by: William <will27528@gmail.com>
1 year ago
William f6aab54d4d
license: Relicense under Apache-2.0 1 year 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>
1 year ago
Rafael Romão bbcb091daf
Fix locked map data saving (#140) 1 year ago
William 516b163e07
use AndJam 1.0.2 for now. 1 year ago
William c123b15708
Bump AndJam to 1.0.3 1 year ago
William 29f8d8bf50
Bump dependencies 1 year ago
dependabot[bot] 4f65cf49ef
Bump commons-io:commons-io from 2.11.0 to 2.12.0 (#134)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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 0fae3484a1
Add workflow files, test reporting, maven publishing, docs, bump version 2 years ago
William 7bb4bff485
Make case conversion operations use the English locale 2 years ago
dependabot[bot] d1ca56af1f
Bump dev.triumphteam:triumph-gui from 3.1.4 to 3.1.5 (#130)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
evlad 2c1a38f2c9
Disable all projectiles while player is in sync (#127) 2 years ago
William 7ed7d0a29e
Add additional cast checking to PDC tag fetching, cast via complex type (#118) 2 years ago
William278 e7e7995e4e Bump dependencies 2 years ago
William278 af57cfcf70 Fix `log` method not logging throwables 2 years ago
William a9b1070725
Encapsulate Settings, tweak keys, add empty dead player save option, close #73 2 years ago
dependabot[bot] acab4ae58a
Bump net.william278:DesertWell from 1.1 to 1.1.1 (#102)
Bumps [net.william278:DesertWell](https://github.com/WiIIiam278/DesertWell) from 1.1 to 1.1.1.
- [Release notes](https://github.com/WiIIiam278/DesertWell/releases)
- [Commits](https://github.com/WiIIiam278/DesertWell/compare/1.1...1.1.1)

---
updated-dependencies:
- dependency-name: net.william278:DesertWell
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
dependabot[bot] 222a9871e0
Bump dev.dejvokep:boosted-yaml from 1.3 to 1.3.1 (#98)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: William <will27528@gmail.com>
2 years ago
dependabot[bot] 0ce9d2ce74
Bump dev.triumphteam:triumph-gui from 3.1.3 to 3.1.4 (#97)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
William278 f15790030f Update dependencies 2 years ago
William278 ce3350c6fa Fix shutdown crash with PDC (rollback switch to using task) 2 years ago
William 4288742052
Update dependencies, close #85, close #86, close #87, close #88, close #89 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 d6d9a55f72 Fix unchecked cast on trident launch locking, fix #79 2 years ago
William e3070a65ab Ensure player isn't locked before force-dropping items 2 years ago
William a8b4696604 Minor style tweaks 2 years ago
William 7f5ca6206b
Merge pull request #76 from ItsWagPvP/patch-1 2 years ago
evlad 94717637ba fix dupe with trident when player is locked 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
Gabriele Cabrini ce41053e87
Fixed issue #74
Added the code that @alexdev03 suggested
2 years ago
William 5817de83e5 Fix locked map data not being applied in some cases 2 years ago
William 30dd48ce88 Add additional checks and error handling when setting health 2 years ago
William 9019181208 Merge remote-tracking branch 'origin/master' 2 years ago
William 99483387f1 Add additional error handling for player health and statistic updating 2 years ago
evlad 71706bf9ae expose locked players + add a method on OnlineUser 2 years ago
William 9dc5577175 Clear the player's cursor when setting inventory contents 2 years ago
William 2017ecc20f Minor refactoring / code improvements 2 years ago
William c4b194f8d6 Fix unlocked maps getting wrongly locked 2 years ago
William d682e6e6c6 Fix notifications through Toast AndJam library 2 years ago
William 6fef9c4eae Remove map itemstack debug logging mess 2 years ago
William278 16eee05065 Add notification slot configuration, support for toasts 2 years ago
William 5af8ae0da5 Use canvas rendering approach, finish locked map synchronisation 2 years ago
William278 c0709f82bd Add the ability to synchronise/persist locked maps cross-server, close #14 2 years ago
William278 945b65e1bc Minor performance improvement to event cancelling, add checks against inventory clicks 2 years ago
William 30cd89c578 Remove unnecessary debug 2 years ago
William bb3753b8e4 Fix typo 2 years ago
William 3bfea58f35 Make event priority configurable for three key events 2 years ago
William bac760165e Tweak logic for determining if a player is dead, fix issues with <1HP players being detected dead 2 years ago
William dd39482ed1 Tweaked bukkit implementation of #isDead detection 2 years ago
William 089ea5b63a Fix unsafe joins on inventory and ender chest commands, better exception catching, Close #58 2 years ago
William 5b8de7967b Fix it not being possible to creative-middle-click-clone item stacks from un-editable inventory snapshot views, close #44 2 years ago
William 4fddbc2b32 Automatically expand menus to accommodate custom inventory/echest sizes, close #45 2 years ago
William 43cd367ca3 TriumphGUI for menus, fix missing inv/echest view message, fix data saving despite no updates, close #42 2 years ago
William c3b339b3dd Minor cleanup, tweak listener method names 2 years ago
William 2b91154ca2 Ensure players have their inventory contents saved on death 2 years ago
William 89d8b79ae3 Add ability to save user data on player death 2 years ago
William acd97a1cb0 Migrate config to Annotaml 2 years ago
William 7536bfaaf5 Add `/userdata dump` command, for file/web dumping of user data json 2 years ago
William cbf5d9c24e Implement variable-sized user data; only save needed data 2 years ago
William 3d232f97fb Shade adventure instead of bundling at runtime 2 years ago
William 6d649d0889 Extra logging for DataSerialization exceptions 2 years ago
William 0754837820 Start work on data list pagination via PagineDown, update locales 2 years ago
William 8f44dbb296 Import cleanup 2 years ago
William 049cd8ecca Migrate plugin to MineDown/Kyori-adventure 2 years ago
William278 59a0002c16 Migrate to DesertWell for about menu, version checking 2 years ago
William278 847790c514 Remove `api` module, include it in with the `bukkit` module for simplicity 2 years ago
William 8edbc029f8 Remove test commodore completions 2 years ago
William 258356e45d Bundle boosted-yaml, adjust shading and build scripts 2 years ago
William e1628b6448 Download jedis at runtime 2 years ago
William fa32e97564 Bump mysql-connector-java to 8.0.30 2 years ago
William 8080d57645 Update MPDB migrator messages 2 years ago
William 0a2f7b6cd4 Fix migration reporting for MPDB migrator too 2 years ago
William 26a2366876 Fix inaccurate migration progress tracking 2 years ago
William 2690ab3144 Make initialization exception more obvious, close #47 2 years ago
William 18b96944e9 Tweak migrator to ensure safe user setting on large data imports 2 years ago
William 2f700b2d93 Use Commodore for rich command completion registering 2 years ago
William d1c95030f0 Added config option for syncing dead player inventories, cancel damage if locked 2 years ago
William 8847483ff8 Correct Persistent Data serialization 2 years ago
William 31552f85e4 Fix malformed events 2 years ago
William dafbcad10e Fix PersistentDataContainer synchronisation, bump to v2.0.2 2 years ago
William d1432ebb31 Hotfix: Fix IllegalArgumentException when attempting to set non-primitive PersistentDataContainer key types. 2 years ago
William 10b3eb5a43 Properly synchronise player death states 2 years ago
Hugo Planque 268c351a95 Clear inventory on death if player still not synced to avoid dupes 2 years ago
Hugo Planque 221baa7b04 switch variable to final 2 years ago
Hugo Planque 8b7b32906e hotfix(Bukkit): fix death sync event when setting health of 0 2 years ago
William 261b9cc00c MPDBConverter over jitpack 2 years ago
William 5d584581f0 Add pin to usage 2 years ago
William 5fe9085483 Re-order commands 2 years ago
William 038150cff7 Update default usages 2 years ago
William b35408c429 Re-implement bStats Metrics 2 years ago
William 22b7648b77 General cleanup and optimisations 2 years ago
William 28c4cfb55f Cancel inventory edits when editing is disabled, tweak listener logic for better compatibility 2 years ago
William b0363d10ed Fix MPDB migrator 2 years ago
William 723c79b3a9 Improve initialization logic 2 years ago
William 54553069bf Fix ender chest command too 2 years ago
William bc9d31abc8 Fix inventory and ender chest commands 2 years ago
William b0e0b9c435 Minor legacy migrator fix, about menu link and text tweaks, minor version checker fixes, fix TAB completion in console 2 years ago
William e5422d66f0 Remove leftover debug logs from startup 2 years ago
William 2e7ed6d9f5 User data pinning, version validation checks, fixes 2 years ago
William d1e9f858fe Start work on Plan integration 2 years ago
William 0fce3c44ab Add legacy migrator 2 years ago
William 94e7fe61cc Fix getAvailableMigrators returning null 2 years ago
William 96c6a878c4 Shrink built jar file size, work on MySQLPlayerDataBridge migrator 2 years ago
William f650db4438 Implement data rollbacks and deletion 2 years ago
William b7709f2d6c Userdata command, API expansion, editor interfaces 2 years ago
William 1c9d74f925 Events & API work, save DataSaveCauses as part of versioning 2 years ago
William fd08a3e7d0 Echest, invsee 2 years ago
William 1829526aa7 Implement compression via DataAdapter, add option to disable compression, better exception handling 2 years ago
William d78dd42b72 Fix data sync when changing servers, consume keys when retrieved 2 years ago
William 38c261871a Basic bukkit implementation 2 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
2 years ago
William 633847a254 Fix inventory clearing on world save 3 years ago
William 3cd144088d Support deserializing old package stuff 3 years ago
William 2b6e2a1ddc Prep 1.4 release 3 years ago
William 5de81f06d6 Remove MPDB dependency requirement. Now uses a library I made. 3 years ago
William 359f0d6f18 Refactor API 3 years ago
William a5f7b37fac Fix incompatibility with custom health scalars, close #25 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 c5e0640f83 Async proxy data setting and fetching; add timestamp API to player data; add option for bounceBackSyncrhonization 3 years ago
William ae439595ea Async data serialization and add synchronization_timeout_retry_delay config option 3 years ago
William 4ab5070043 Comment typo 3 years ago
William 1664f1bf66 Upgrade bStats to 3.0.0 3 years ago
Harvels X 28c14ed393
Edit: fix UpdateChecker version check;
Add: version utils;
3 years ago
Harvels X 3c50245540
Edit: relocations & excludes;
Refactoring modules configuration;
3 years ago
Harvels X fd42bc99be
Edit: move plugin manifests;
Edit: retrieve a version of velocity;
3 years ago
William 37520991e5 Conformity to Bukkit API conventions 3 years ago
William 7a89ffdf35 Make event priority LOWEST 3 years ago
William 6719858de1 Add SSL connection option for Redis 3 years ago
William 920d2582f5 Update Redis initialization handling now that it is multithreaded 3 years ago
William 93be26a946 Use JedisPool instead of single Jedis connection 3 years ago
William bf6032d6f0 Add ability to update PlayerData back to cache and add more javadoc comments 3 years ago
William 023082e749 Overhaul API, add JitPack integration for developer API provision 3 years ago
William 5dbea87ccb Cleanup 3 years ago