PaperMC / Paper

The most widely used, high performance Minecraft server that aims to fix gameplay and mechanics inconsistencies
https://papermc.io/
Other
9.34k stars 2.2k forks source link

ItemMeta unhandled tags are not handled for data upgrades #10979

Open electronicboy opened 6 days ago

electronicboy commented 6 days ago

Primary discussion goes back to here; https://discord.com/channels/289587909051416579/555462289851940864/1254135843182870659

ItemMeta's history of upgrading data is more of a "we manually pick out the data and so we can save it back in any format desired", this is a tragic solution but has mostly survived with manual bodges to the data here and there, the issue comes in is, what happens to the data we don't know how to handle?

The data is not stored in a manner that it's picked apart and can be reassembled, the only real solution here would be to see if we can run this data through DFU/DC in some manner, https://github.com/PaperMC/Paper/pull/10609 is going to be the best final solution here, but;

1) if viable, run existing unhandled data through DFU

2) Merging the agreed-upon solution as discussed in the linked PR is generally going to be the best solution here in the long run, as it preserves the entire data set exactly as it does elsewhere so that we can upgrade it. I semi-want to deprecate storing ItemStacks inside of Bukkits configuration system, the system is fragile and as much as I've warned over the years, there is generally no persistently glowing warning that "hey, this is a bad idea if you care about the longevity of your data"