'/viaversion dump' Output
https://dump.viaversion.com/a005fcce82bf6cb0120aaff11c804b45d14789a2795ce8ad40775609a7d9106c
Server/Client Error
(no errors)
Bug Description
I was looking into #1330 and wanted to see current behavior, but noticed the problem of trim being lost going back to the server when playing on pre-1.21.4 (when resin was introduced). Any resin armor trim I give myself (used an anvil to be sure) loses its trim once I go to the old client, move the item around, then return on the new client.
Steps to Reproduce
- On a modern server (26.3), make any armor piece with a resin trim. (This doesn't happen with other trims)
- Connect to the server using a Minecraft 1.20.1 client.
- Open inventory, equip the trimmed armor, and take it off (or move it between slots).
- Disconnect and rejoin using a modern client (26.3).
Expected
- Resin armor trim component should be preserved across client-to-server inventory packets (
CONTAINER_CLICK / SET_CREATIVE_SLOT).
- Going back to the modern server, the armor should still have its resin trim.
Actual
- The trim data is stripped from the item on the server after being moved in the 1.20.1 inventory.
- When viewed on modern server, the armor's now untrimmed.
Additional Server Info
I noticed EntityPacketRewriter1_20_5 writes to user.get(ArmorTrimStorage.class), while updateArmorTrim reads from user.storables(Protocol1_20_3To1_20_5.class).armorTrims() which just has the hardcoded 1.20.3 defaults. Should it be updating the storables instance instead?
Checklist
'/viaversion dump' Output
https://dump.viaversion.com/a005fcce82bf6cb0120aaff11c804b45d14789a2795ce8ad40775609a7d9106c
Server/Client Error
(no errors)
Bug Description
I was looking into #1330 and wanted to see current behavior, but noticed the problem of trim being lost going back to the server when playing on pre-1.21.4 (when resin was introduced). Any resin armor trim I give myself (used an anvil to be sure) loses its trim once I go to the old client, move the item around, then return on the new client.
Steps to Reproduce
Expected
CONTAINER_CLICK/SET_CREATIVE_SLOT).Actual
Additional Server Info
I noticed
EntityPacketRewriter1_20_5writes touser.get(ArmorTrimStorage.class), whileupdateArmorTrimreads fromuser.storables(Protocol1_20_3To1_20_5.class).armorTrims()which just has the hardcoded 1.20.3 defaults. Should it be updating the storables instance instead?Checklist