You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I added another minecraft instance running the same modpack. Players complained that when the logged into the new instance, the enchantments changed on their armor.
They gave a specific example of obsidian boots that originally had a multijump IV enchantment, but it synced as beheading IV on the new server.
I was able to reproduce it. This is the json for the boots:
I discovered that the enchantment ids are mapped to enchantments in the level.dat file, under FML/Registries/minecraft:enchantments/ids. Enchantment id 105 was mapped to different things on the two servers. The original server has been through many modpack upgrades, and I suspect that's why it had a different enchantment id mapping.
I worked around this by copying the enchantment id mapping from level.dat on the source server to the target server. This will fix it for player inventory, but now the enchantments will be wrong on loot they get from dungeons (because I already pregenned the world).
Ideally invsync would serialize the enchantment ids as enchantment names.
Affected Versions (Do not use "latest"):
Minecraft: 1.11.2
InvSync: InvSync-0.6.19.311-DEV.jar
Sponge: aaaa-spongeforge-1.12.2-2825-7.1.6.jar
Other related mods: Modpack DD&SS 5.2
The text was updated successfully, but these errors were encountered:
Hi there.
First of all I’m glad you managed to fix it in your server. What you did is what I would have suggested. And your analysis of the issue seems correct.
Now the thing is I don’t serialize items by hand. Sponge does that. Even if I did, I’d run into the issue that the way enchantments are serialized currently is the way Minecraft stores them itself. So if I serialize the NBT Data of an item I’d need to convert the enchantment data before storing it (and converting it back).
Don’t get me wrong. I do understand your issue. And I do understand why you are requesting it. Though the issue doesn’t lie within my plugin, but rather with Minecraft itself.
If the enchantment format stays the same in 1.13 and 1.14 I’ll consider trying to add a workaround for it. Since if MC itself changes it in the versions already out, I don’t see a point in adding a complex workaround that’s technically speaking already obsolete.
Issue Description:
I added another minecraft instance running the same modpack. Players complained that when the logged into the new instance, the enchantments changed on their armor.
They gave a specific example of obsidian boots that originally had a multijump IV enchantment, but it synced as beheading IV on the new server.
I was able to reproduce it. This is the json for the boots:
I discovered that the enchantment ids are mapped to enchantments in the level.dat file, under FML/Registries/minecraft:enchantments/ids. Enchantment id 105 was mapped to different things on the two servers. The original server has been through many modpack upgrades, and I suspect that's why it had a different enchantment id mapping.
I worked around this by copying the enchantment id mapping from level.dat on the source server to the target server. This will fix it for player inventory, but now the enchantments will be wrong on loot they get from dungeons (because I already pregenned the world).
Ideally invsync would serialize the enchantment ids as enchantment names.
Affected Versions (Do not use "latest"):
The text was updated successfully, but these errors were encountered: