Releases: Querz/NBT
Releases · Querz/NBT
Bugfixes
This release fixes some bugs and changes some stuff to make it more convenient.
Details:
- Updating the DataVersion in a Chunk did not update internally in a Section.
- Setting a BlockState in a Section that would cause a change in the bits used to save a BlockState did now increase the length of the BlockStates array correctly for DataVersion > 2526.
- Added a helper method to CompoundTag that returns an abstract Number.
- Added a lenient mode for the SNBTParser that ignores any characters after it is done parsing.
- Made the SNBTParser's cunstructor public and removed the static
parse
methods, in favor for easier access to simply parse an SNBT string.
Add support for little endian
This release adds support for little endian serialization / deserialization for Minecraft Bedrock Edition.
Details:
- Added support for little endian serialization / deserialization.
NBTUtil
now has helper functions to load / save NBT data with little endianness.- Added load flag to only load raw data and skip dat avalidation in chunks.
- Fixed a bug where biome indexes were calculated incorrectly.
- Fixed a bug where the type of an empty
ListTag
was set incorrectly when casting.
Selective loading of data from MCA files
This release introduces selective loading from MCA files.
Details:
LoadFlags
can now be provided before loading an MCA file to only keep wanted data in memory. anMCAFile
loaded using anyLoadFlag
other thanALL_DATA
will only keep the specified data in memory and can therefore not be serialized anymore. See #49 .- Performance improvements when reading NBT arrays, see #47 .
- Fixed typo when serializing Heightmaps.
- Updated gradle wrapper to 6.5.
Fix flushing NBTSerializer
Bug fix
Details:
NBTSerializer
did not flush GZIPOutputStream after writing tag data.
Even more bug fixes
As you guessed it, more bug fixes.
Details:
- Updated the Readme on how to integrate NBT using Gradle or Maven
- Fixed some old bugs from #36
- Made MCAUtil.newMCAFile(File) public
- When updating a Selection object, it is now checked whether some fields are null to avoid NPEs
More Bug fixes
Fixed a bug where the biome index was calculated incorrectly.
Details:
- Fixed a bug where the biome index was calculated incorrectly, which led to
getBiomeAt
andsetBiomeAt
methods return and set the wrong biomes. - Added unit tests for the above fix.
Bug fixes
This release reintroduces some fixes from 4.1 that somehow got lost in 5.0.
Details:
- Fixed a bug where an exception was thrown when reading empty sections.
- Fixed a bug where setting biomes using
setBiomes(int[])
would throw an exception with arrays having a length of 1024. - Fixed a bug where adjusting the size of the block states array would still use the old format in 20w17a.
- Added missing JavaDoc back to
Chunk
,MCAFile
andSection
classes.
Serialization and deserialization overhaul
This release overhauls serialization and deserialization.
Details:
- Removed example custom tags and dropped support in serializers and deserializers.
- Packages are better organized now.
- Added an SNBT writer and parser.
- Added an IO package
net.querz.io
that is used for NBT and SNBT serlialization and deserialization. - Updated Version to 5.0.
- Removed TagFactory, this is handled by the new serializers and deserializers now
- MCAFile: Fixed biome methods not working with new vertical biomes.
- MCAFile: Fixed BlockStates being saved differently in 20w17a.
- Fixed Unit-Tests accordingly.
Fix crash on empty Sections
Improve consistency and type safety
This release fixes some issues regarding consistency and type safety.
Details:
- All Tags now implement
Comparable
on their own to assure type safety ListTag
andCompoundTag
now always clear their values before deserialising data into themTag#toString()
andTag#toTagString()
are nowfinal
to force child classes to use themaxDepth
parameter- Passing
null
to#compareTo
now throws aNullPointerException
- Calculation of the maximum depth is inverted to allow a custom maximum depth
- Updated the javadoc for proper use of the maximum depth
- Negative
ListTag
andStructTag
sizes are corrected to0
- Removed
Tag#getEmptyValue()
- Added unit tests for all changes