Commit Graph

76 Commits

Author SHA1 Message Date
laforetbrut
c63d5849a3 Add mod compatibility: Accessories (Aether), Cosmetic Armor, Apotheosis
- Add Accessories API sync for Aether mod accessory slots (pendant, cape,
  gloves, rings, shield, misc). Uses same pattern as Curios: validate data
  before clearing slots, PreparedStatements for DB operations
- Add Cosmetic Armor Reworked sync for 4 cosmetic armor slots via
  InventoryManager/CosArmorAPI
- Add Apotheosis + Placebo as compileOnly deps. Apotheosis item data
  (affixes, gems, sockets, rarity) travels with items via DataComponents
  and is already synced by the inventory sync
- New generic mod_player_data DB table with composite key (uuid, mod_id)
  for extensible mod-specific data storage
- Integrated save/restore in join, logout, and auto-save pipelines

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 11:21:09 +01:00
laforetbrut
03b57c3e6b Fix critical sync bugs, security, and add Sophisticated Storage support
- Fix advancements disappearing: use PreparedStatements for all SQL with
  user data (advancement JSON contains chars that broke string-concat SQL),
  add null safety for advancement file
- Fix multi-server kick: run doPlayerConnect synchronously instead of async
  (players could join before the duplicate check completed)
- Fix Curios disappearing: clear slots AFTER validating data exists (not
  before), use CuriosCache for dead players on logout instead of empty API
- Fix Sophisticated Storage items: add storeSophisticatedStorageItems() and
  restoreSophisticatedStorageItems() to sync packed barrels/shulkers/chests
- Anti-duplication: clear all inventories before restoring from DB on join
- Fix tick counter: remove LevelTickEvent (fired per dimension = 3x too
  fast), merge heartbeat into ServerTickEvent
- Fix connection leaks: use try-with-resources for all QueryResult
- Fix logout order: save data BEFORE marking player offline
- Skip auto-save for dead/unsynced players to prevent saving empty data

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 11:04:00 +01:00
mlus
148ac4db9b Revert "fallback BNBT, Compat with codec"
This reverts commit ce7004dba0.
2026-02-24 10:24:13 +08:00
mlus
ce7004dba0 fallback BNBT, Compat with codec 2026-02-24 10:20:27 +08:00
mlus
4b39d52c12 Add binary NBT serialization and deserialization support to improve data handling 2026-02-23 23:53:41 +08:00
mlus
b6da709393 curios snbt clean 2026-02-23 22:33:13 +08:00
mlus
d0044fa824 snbt structure clean 2026-02-17 19:08:34 +08:00
mlus
d8c3bac31f new nbt serializer 2026-02-17 15:41:45 +08:00
mlus
0c51ad8eb7 try to fix component parse error 2026-02-17 14:27:45 +08:00
mlus
38c88a95f9 fix #151
fix #160
2026-01-14 20:26:26 +08:00
mlus
72d0255d48 fix advancements sync 2025-11-30 01:57:26 +08:00
mlus
90742aafa0 fix backpack didn't sync 2025-11-30 00:50:55 +08:00
mlus
733f37cbb3 supplement 2025-11-28 22:15:29 +08:00
mlus
29da0f28ad recently commit port 2025-11-28 21:00:25 +08:00
mlus
b5e5f9fb65 line 155 make method return so curios data won't save at the first time 2025-10-14 16:56:47 +08:00
mlus
260b24975c heartbeat 2025-10-14 16:56:25 +08:00
mlus
62b0cf15bc chat sync reconnect system 2025-10-14 16:55:24 +08:00
mlus
07709ad792 may fix #111 2025-09-25 23:03:17 +08:00
mlus
fc043e1e03 half done, noticed about advancement can't store normally 2025-06-07 00:55:30 +08:00
mlus
3b442fbee1 not done yet 2025-06-06 21:17:22 +08:00
mlus
79e0e2cbe4 Fix error when no player in server 2025-06-06 13:09:32 +08:00
mlus
0562b01138 Full tested ChatSync Feature 2025-06-05 12:43:41 +08:00
EoD
22b628bdcb fix sophisticated backpack integration for 1.20.4 2025-05-04 18:43:11 +00:00
EoD
9eb8bdc4a0 add support for Minecraft 1.20.4 with ModDevGradle 2025-05-04 18:43:11 +00:00
EoD
6ac6f297af encode unknown items using Paper
This allows using PlayerSync with different minecraft versions and
even different sets of mods.

All unknown items are replaced by Paper with its original NBT data
encoded into the paper item.
2025-05-04 16:48:57 +00:00
mlus
39b69424e8 so it is 2.0.0 release 2025-05-04 18:40:39 +08:00
mlus
162df73189
Merge pull request #57 from EoD/fix-advancements-on-brand-new-server
fix advancement restore on brand new servers
2025-05-03 11:17:18 +08:00
mlus
19559bf9e2
Merge pull request #55 from EoD/fix-chat-config-being-ignored
fix chat sync always being enabled
2025-05-03 11:15:59 +08:00
EoD
ba33d5271b fix advancement restore on brand new servers
On a brand new server, there is no advancements directory throwing an
IOException if we try to write a file to it.
2025-05-02 21:19:34 +00:00
EoD
0cbca7cfd8 add logging for chat server 2025-05-02 20:32:29 +00:00
EoD
a1d1737d04 fix advancement sync for new players 2025-05-02 19:16:58 +00:00
EoD
44eb3321b4 make advancement sync optional 2025-05-02 17:40:26 +00:00
EoD
7ece814357 fix advancement json restore
Previously, the json was written too late and never reloaded.
This commit moves the advancement restoration from the PlayerLoggedInEvent
to the earlier onDatapackSyncEvent.
At the same time, it forces a reload of the json files, making sure the
client is informed about the update advancements.
2025-05-01 17:05:03 +00:00
EoD
37d0eb2931 fix storing advancement json on dedicated servers 2025-05-01 17:05:03 +00:00
EoD
94433229b7 read level-name for servers from WorldData 2025-05-01 17:05:02 +00:00
mlus
c1778a956c fix error symbol 2025-05-02 00:35:47 +08:00
mlus
b6f76a6af2
Merge pull request #39 from EoD/add-database-compat-flag
add configuration for legacy serialization
2025-05-02 00:28:27 +08:00
mlus
08e73d00da
Merge pull request #37 from EoD/fix-sophisticated-backpack
fix hidden NoClassDefFoundError
2025-05-02 00:25:03 +08:00
EoD
32856ccd67 fix hidden NoClassDefFoundError
net.p3pp3rf1y.sophisticatedbackpacks throws a NoClassDefFoundError when
sophisticated backpacks is not installed.
This exception never reaches the logs for unknown reasons.

Checking explicitly for ModList.get().isLoaded() ensures that the mod is
loaded.

Fixes regression of 439c7ee5bb
2025-05-01 16:16:42 +00:00
EoD
0fb6bb81e1 fix armor dupe bug
The continue "skipped" the armor entries in the database instead of
writing an explicit "air" item into the slot.

When restoring, only existing entries are being restored, all other
items are left untouched. Allowing to dupe items in armor slots.
2025-05-01 16:14:46 +00:00
EoD
44a3e9ca8c add configuration for legacy serialization 2025-04-25 23:31:43 +00:00
mchivelli
5d1a166dcf
Merge branch '1.20.1' into 1.20.1 2025-03-21 23:49:31 +01:00
paulm
9ee7f9a95a Fixed Curios problems 2025-03-21 20:03:42 +01:00
mlus
a7f1373713 1.3.5 release 2025-03-21 19:42:08 +08:00
paulm
439c7ee5bb Addeed Sophisticated Backpack Mod compatibility 2025-03-20 05:26:15 +01:00
mlus
e22b21c826 Update left_hand and cursor stack sync 2024-10-11 13:25:33 +08:00
mlus
a77fc52da9 fix #23 2024-10-10 18:44:36 +08:00
mlus
9332ac6353 try to fix #23 2024-10-10 13:07:58 +08:00
mlus
bb45488186 fix #22 2024-09-24 21:46:12 +08:00
mlus
1ec9be4e5a reduce frequency of updating server info 2024-08-05 02:24:04 +08:00