it seems that sometimes this is triggered on an existing database. This
should help identifying what is happening in these cases.
(cherry picked from commit 54cbb9c9a8)
The new base64 encoding uses "=" characters as part of its encoding.
The previous code split those and trimmed them afterwards, making the
base64 not consistent with the rest of the code that assumed "=" are
still present, like "B64:e30=".
(cherry picked from commit de324a23be)
The current calculation did not work for larger amounts of levels
and either removed or added levels unintentionally.
(cherry picked from commit d83bad5a33)
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.
reading CHAT_SYNC immediately within FMLCommonSetupEvent can lead to
timing issues that the default value instead of the real config value is
being returned.
Moving them within event.enqueueWork() fixes the timing issue.
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.
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
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.