mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-03 17:52:28 +01:00
High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
https://papermc.io/
bukkitcraftbukkithacktoberfestjavaminecraftminecraft-apiminecraft-performanceminecraft-serverpaperpaper-apipapermcspigot-forktacos
5692b3f59a
The initial implementation of the CraftNBTTagConfigSerialiser attempted to represent the entire NBT tree in yaml. While the tree structure itself is nicely represented, the values and their respective types become increasingly difficult to properly store in the context of snakeyml/yml in general. This is mainly due to the fact that nbt offers a lot of different types compared to yaml, specifically the primitive arrays and different floating point values are troublesome as they require parsing via mojang parsers due to their custom format. To build a future proof system for unstructured nbt in spigot yml, this commit moves the entire serialisation fully into SNBT, producing a single string as output rather than a full yml tree. SNBT remains easily readable and editable for server owners, which was one of the main criteria during the initial implementation of the serialiser (preventing the use of bas64ed gzipped nbt bytes), while also completely using mojangs parsing, eliminating any need for custom parsing logic in spigot. Additionally, a string allows for very straight forward handling of legacy data by simply parsing strings as SNBT and maps/yml trees as legacy content, depending on what type snakeyml produces after parsing the yml content, removing the need for a versioning schema. By: Bjarne Koll <lynxplay101@gmail.com> |
||
---|---|---|
paper-server |