Package net.minecraft.nbt
Class NbtIo
java.lang.Object
net.minecraft.nbt.NbtIo
A set of utility functions for reading, writing, and scanning NBT files.
Methods that do not require
NbtSizeTracker
accept any bytes of data,
provided that its depth does not exceed 512.
When writing an invalid string, methods in
this class will write an empty string instead of crashing, with the exception of
writeUnsafe(net.minecraft.nbt.NbtElement, java.io.DataOutput)
which throws instead.
- Mappings:
Namespace Name named net/minecraft/nbt/NbtIo
intermediary net/minecraft/class_2507
official vk
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprivate static DataOutputStream
compress
(OutputStream stream) Returns a new output stream that compresses the inputstream
.private static DataInputStream
decompress
(InputStream stream) Returns a new input stream that decompresses the inputstream
.static NbtElement
read
(DataInput input, NbtSizeTracker tracker) Reads an NBT element frominput
.static @Nullable NbtCompound
Reads an NBT compound from the file atpath
.static NbtCompound
readCompound
(DataInput input) Reads an NBT compound frominput
.static NbtCompound
readCompound
(DataInput input, NbtSizeTracker tracker) Reads an NBT compound frominput
.static NbtCompound
readCompressed
(InputStream stream, NbtSizeTracker tagSizeTracker) Reads an NBT compound from Gzip-compressedstream
.static NbtCompound
readCompressed
(Path path, NbtSizeTracker tagSizeTracker) Reads an NBT compound from Gzip-compressed file atpath
.private static NbtElement
readElement
(DataInput input, NbtSizeTracker tracker) private static NbtElement
readElement
(DataInput input, NbtSizeTracker tracker, byte typeId) static void
scan
(DataInput input, NbtScanner scanner, NbtSizeTracker tracker) Scans the NBT input usingscanner
.static void
scanCompressed
(InputStream stream, NbtScanner scanner, NbtSizeTracker tracker) Scans the compressed NBT stream usingscanner
.static void
scanCompressed
(Path path, NbtScanner scanner, NbtSizeTracker tracker) Scans the compressed NBT file usingscanner
.static void
write
(NbtCompound nbt, Path path) Writes thenbt
to the file atpath
.static void
write
(NbtElement nbt, DataOutput output) Writes thenbt
tooutput
.static void
writeCompound
(NbtCompound nbt, DataOutput output) Writes thenbt
tooutput
.static void
writeCompressed
(NbtCompound nbt, OutputStream stream) Writes the Gzip-compressednbt
tostream
.static void
writeCompressed
(NbtCompound nbt, Path path) Writes the Gzip-compressednbt
to the file atpath
.static void
writeForPacket
(NbtElement nbt, DataOutput output) Writes thenbt
tooutput
.static void
writeUnsafe
(NbtElement nbt, DataOutput output) Writes thenbt
tooutput
.
-
Field Details
-
OPEN_OPTIONS
- Mappings:
Namespace Name Mixin selector named OPEN_OPTIONS
Lnet/minecraft/nbt/NbtIo;OPEN_OPTIONS:[Ljava/nio/file/OpenOption;
intermediary field_47513
Lnet/minecraft/class_2507;field_47513:[Ljava/nio/file/OpenOption;
official a
Lvk;a:[Ljava/nio/file/OpenOption;
-
-
Constructor Details
-
NbtIo
public NbtIo()
-
-
Method Details
-
readCompressed
public static NbtCompound readCompressed(Path path, NbtSizeTracker tagSizeTracker) throws IOException Reads an NBT compound from Gzip-compressed file atpath
.- Returns:
- the NBT compound from the file
- Throws:
IOException
- if the IO operation fails or if the root NBT element is not a compoundNbtSizeValidationException
- if the NBT is too deep- See Also:
- Mappings:
Namespace Name Mixin selector named readCompressed
Lnet/minecraft/nbt/NbtIo;readCompressed(Ljava/nio/file/Path;Lnet/minecraft/nbt/NbtSizeTracker;)Lnet/minecraft/nbt/NbtCompound;
intermediary method_30613
Lnet/minecraft/class_2507;method_30613(Ljava/nio/file/Path;Lnet/minecraft/class_2505;)Lnet/minecraft/class_2487;
official a
Lvk;a(Ljava/nio/file/Path;Lvg;)Lux;
-
decompress
Returns a new input stream that decompresses the inputstream
.- Returns:
- a new input stream that decompresses the input
stream
- Throws:
IOException
- Mappings:
Namespace Name Mixin selector named decompress
Lnet/minecraft/nbt/NbtIo;decompress(Ljava/io/InputStream;)Ljava/io/DataInputStream;
intermediary method_40059
Lnet/minecraft/class_2507;method_40059(Ljava/io/InputStream;)Ljava/io/DataInputStream;
official a
Lvk;a(Ljava/io/InputStream;)Ljava/io/DataInputStream;
-
compress
Returns a new output stream that compresses the inputstream
.- Returns:
- a new output stream that compresses the input
stream
- Throws:
IOException
- Mappings:
Namespace Name Mixin selector named compress
Lnet/minecraft/nbt/NbtIo;compress(Ljava/io/OutputStream;)Ljava/io/DataOutputStream;
intermediary method_54906
Lnet/minecraft/class_2507;method_54906(Ljava/io/OutputStream;)Ljava/io/DataOutputStream;
official a
Lvk;a(Ljava/io/OutputStream;)Ljava/io/DataOutputStream;
-
readCompressed
public static NbtCompound readCompressed(InputStream stream, NbtSizeTracker tagSizeTracker) throws IOException Reads an NBT compound from Gzip-compressedstream
.- Returns:
- the NBT compound from the stream
- Throws:
IOException
- if the IO operation fails or if the root NBT element is not a compoundNbtSizeValidationException
- if the NBT is too deep- See Also:
- Mappings:
Namespace Name Mixin selector named readCompressed
Lnet/minecraft/nbt/NbtIo;readCompressed(Ljava/io/InputStream;Lnet/minecraft/nbt/NbtSizeTracker;)Lnet/minecraft/nbt/NbtCompound;
intermediary method_10629
Lnet/minecraft/class_2507;method_10629(Ljava/io/InputStream;Lnet/minecraft/class_2505;)Lnet/minecraft/class_2487;
official a
Lvk;a(Ljava/io/InputStream;Lvg;)Lux;
-
scanCompressed
public static void scanCompressed(Path path, NbtScanner scanner, NbtSizeTracker tracker) throws IOException Scans the compressed NBT file usingscanner
.- Throws:
IOException
- if the IO operation failsNbtSizeValidationException
- if thetracker
's validation fails- See Also:
- API Note:
- This method does not return the scan result; the user is expected
to call the appropriate method of the
NbtScanner
subclasses, such asNbtCollector.getRoot()
. - Mappings:
Namespace Name Mixin selector named scanCompressed
Lnet/minecraft/nbt/NbtIo;scanCompressed(Ljava/nio/file/Path;Lnet/minecraft/nbt/scanner/NbtScanner;Lnet/minecraft/nbt/NbtSizeTracker;)V
intermediary method_40057
Lnet/minecraft/class_2507;method_40057(Ljava/nio/file/Path;Lnet/minecraft/class_6836;Lnet/minecraft/class_2505;)V
official a
Lvk;a(Ljava/nio/file/Path;Lvr;Lvg;)V
-
scanCompressed
public static void scanCompressed(InputStream stream, NbtScanner scanner, NbtSizeTracker tracker) throws IOException Scans the compressed NBT stream usingscanner
.- Throws:
IOException
- if the IO operation failsNbtSizeValidationException
- if thetracker
's validation fails- See Also:
- API Note:
- This method does not return the scan result; the user is expected
to call the appropriate method of the
NbtScanner
subclasses, such asNbtCollector.getRoot()
. - Mappings:
Namespace Name Mixin selector named scanCompressed
Lnet/minecraft/nbt/NbtIo;scanCompressed(Ljava/io/InputStream;Lnet/minecraft/nbt/scanner/NbtScanner;Lnet/minecraft/nbt/NbtSizeTracker;)V
intermediary method_40058
Lnet/minecraft/class_2507;method_40058(Ljava/io/InputStream;Lnet/minecraft/class_6836;Lnet/minecraft/class_2505;)V
official a
Lvk;a(Ljava/io/InputStream;Lvr;Lvg;)V
-
writeCompressed
Writes the Gzip-compressednbt
to the file atpath
.- Throws:
IOException
- if the IO operation fails- See Also:
- Mappings:
Namespace Name Mixin selector named writeCompressed
Lnet/minecraft/nbt/NbtIo;writeCompressed(Lnet/minecraft/nbt/NbtCompound;Ljava/nio/file/Path;)V
intermediary method_30614
Lnet/minecraft/class_2507;method_30614(Lnet/minecraft/class_2487;Ljava/nio/file/Path;)V
official a
Lvk;a(Lux;Ljava/nio/file/Path;)V
-
writeCompressed
Writes the Gzip-compressednbt
tostream
.- Throws:
IOException
- if the IO operation fails- See Also:
- Mappings:
Namespace Name Mixin selector named writeCompressed
Lnet/minecraft/nbt/NbtIo;writeCompressed(Lnet/minecraft/nbt/NbtCompound;Ljava/io/OutputStream;)V
intermediary method_10634
Lnet/minecraft/class_2507;method_10634(Lnet/minecraft/class_2487;Ljava/io/OutputStream;)V
official a
Lvk;a(Lux;Ljava/io/OutputStream;)V
-
write
Writes thenbt
to the file atpath
.- Throws:
IOException
- if the IO operation fails- See Also:
- Mappings:
Namespace Name Mixin selector named write
Lnet/minecraft/nbt/NbtIo;write(Lnet/minecraft/nbt/NbtCompound;Ljava/nio/file/Path;)V
intermediary method_10630
Lnet/minecraft/class_2507;method_10630(Lnet/minecraft/class_2487;Ljava/nio/file/Path;)V
official b
Lvk;b(Lux;Ljava/nio/file/Path;)V
-
read
Reads an NBT compound from the file atpath
.- Returns:
- the NBT compound from the file, or
null
if the file does not exist - Throws:
IOException
- if the IO operation fails or if the root NBT element is not a compoundNbtSizeValidationException
- if the NBT is too deep- Mappings:
Namespace Name Mixin selector named read
Lnet/minecraft/nbt/NbtIo;read(Ljava/nio/file/Path;)Lnet/minecraft/nbt/NbtCompound;
intermediary method_10633
Lnet/minecraft/class_2507;method_10633(Ljava/nio/file/Path;)Lnet/minecraft/class_2487;
official a
Lvk;a(Ljava/nio/file/Path;)Lux;
-
readCompound
Reads an NBT compound frominput
.- Returns:
- the NBT compound from the input
- Throws:
IOException
- if the IO operation fails or if the root NBT element is not a compoundNbtSizeValidationException
- if the NBT is too deep- Mappings:
Namespace Name Mixin selector named readCompound
Lnet/minecraft/nbt/NbtIo;readCompound(Ljava/io/DataInput;)Lnet/minecraft/nbt/NbtCompound;
intermediary method_10627
Lnet/minecraft/class_2507;method_10627(Ljava/io/DataInput;)Lnet/minecraft/class_2487;
official a
Lvk;a(Ljava/io/DataInput;)Lux;
-
readCompound
Reads an NBT compound frominput
.- Returns:
- the NBT compound from the input
- Throws:
IOException
- if the IO operation fails or if the root NBT element is not a compoundNbtSizeValidationException
- if thetracker
's validation fails- Mappings:
Namespace Name Mixin selector named readCompound
Lnet/minecraft/nbt/NbtIo;readCompound(Ljava/io/DataInput;Lnet/minecraft/nbt/NbtSizeTracker;)Lnet/minecraft/nbt/NbtCompound;
intermediary method_10625
Lnet/minecraft/class_2507;method_10625(Ljava/io/DataInput;Lnet/minecraft/class_2505;)Lnet/minecraft/class_2487;
official a
Lvk;a(Ljava/io/DataInput;Lvg;)Lux;
-
writeCompound
Writes thenbt
tooutput
.- Throws:
IOException
- if the IO operation fails- See Also:
- Mappings:
Namespace Name Mixin selector named writeCompound
Lnet/minecraft/nbt/NbtIo;writeCompound(Lnet/minecraft/nbt/NbtCompound;Ljava/io/DataOutput;)V
intermediary method_10628
Lnet/minecraft/class_2507;method_10628(Lnet/minecraft/class_2487;Ljava/io/DataOutput;)V
official a
Lvk;a(Lux;Ljava/io/DataOutput;)V
-
scan
public static void scan(DataInput input, NbtScanner scanner, NbtSizeTracker tracker) throws IOException Scans the NBT input usingscanner
.- Throws:
IOException
- if the IO operation failsNbtSizeValidationException
- if thetracker
's validation fails- API Note:
- This method does not return the scan result; the user is expected
to call the appropriate method of the
NbtScanner
subclasses, such asNbtCollector.getRoot()
. - Mappings:
Namespace Name Mixin selector named scan
Lnet/minecraft/nbt/NbtIo;scan(Ljava/io/DataInput;Lnet/minecraft/nbt/scanner/NbtScanner;Lnet/minecraft/nbt/NbtSizeTracker;)V
intermediary method_39855
Lnet/minecraft/class_2507;method_39855(Ljava/io/DataInput;Lnet/minecraft/class_6836;Lnet/minecraft/class_2505;)V
official a
Lvk;a(Ljava/io/DataInput;Lvr;Lvg;)V
-
read
Reads an NBT element frominput
. UnlikereadCompound(DataInput, NbtSizeTracker)
, the element does not have to be a compound.- Returns:
- the NBT element from the input
- Throws:
IOException
- if the IO operation failsNbtSizeValidationException
- if thetracker
's validation fails- Mappings:
Namespace Name Mixin selector named read
Lnet/minecraft/nbt/NbtIo;read(Ljava/io/DataInput;Lnet/minecraft/nbt/NbtSizeTracker;)Lnet/minecraft/nbt/NbtElement;
intermediary method_52894
Lnet/minecraft/class_2507;method_52894(Ljava/io/DataInput;Lnet/minecraft/class_2505;)Lnet/minecraft/class_2520;
official b
Lvk;b(Ljava/io/DataInput;Lvg;)Lvu;
-
writeForPacket
Writes thenbt
tooutput
. The output is the byte indicating the element type, followed by the NBT data.- Throws:
IOException
- if the IO operation fails- See Also:
- API Note:
- In vanilla, this is used exclusively in networking.
- Mappings:
Namespace Name Mixin selector named writeForPacket
Lnet/minecraft/nbt/NbtIo;writeForPacket(Lnet/minecraft/nbt/NbtElement;Ljava/io/DataOutput;)V
intermediary method_52893
Lnet/minecraft/class_2507;method_52893(Lnet/minecraft/class_2520;Ljava/io/DataOutput;)V
official a
Lvk;a(Lvu;Ljava/io/DataOutput;)V
-
writeUnsafe
Writes thenbt
tooutput
. The output is the byte indicating the element type, followed by an empty string and the NBT data.When writing an invalid string, this method will throw an error, unlike other methods.
- Throws:
IOException
- if the IO operation fails- See Also:
- Mappings:
Namespace Name Mixin selector named writeUnsafe
Lnet/minecraft/nbt/NbtIo;writeUnsafe(Lnet/minecraft/nbt/NbtElement;Ljava/io/DataOutput;)V
intermediary method_10631
Lnet/minecraft/class_2507;method_10631(Lnet/minecraft/class_2520;Ljava/io/DataOutput;)V
official b
Lvk;b(Lvu;Ljava/io/DataOutput;)V
-
write
Writes thenbt
tooutput
. The output is the byte indicating the element type, followed by an empty string and the NBT data.When writing an invalid string, this method will write an empty string instead of crashing.
- Throws:
IOException
- if the IO operation fails- See Also:
- Mappings:
Namespace Name Mixin selector named write
Lnet/minecraft/nbt/NbtIo;write(Lnet/minecraft/nbt/NbtElement;Ljava/io/DataOutput;)V
intermediary method_55324
Lnet/minecraft/class_2507;method_55324(Lnet/minecraft/class_2520;Ljava/io/DataOutput;)V
official c
Lvk;c(Lvu;Ljava/io/DataOutput;)V
-
readElement
- Throws:
IOException
- Mappings:
Namespace Name Mixin selector named readElement
Lnet/minecraft/nbt/NbtIo;readElement(Ljava/io/DataInput;Lnet/minecraft/nbt/NbtSizeTracker;)Lnet/minecraft/nbt/NbtElement;
intermediary method_10626
Lnet/minecraft/class_2507;method_10626(Ljava/io/DataInput;Lnet/minecraft/class_2505;)Lnet/minecraft/class_2520;
official c
Lvk;c(Ljava/io/DataInput;Lvg;)Lvu;
-
readElement
- Mappings:
Namespace Name Mixin selector named readElement
Lnet/minecraft/nbt/NbtIo;readElement(Ljava/io/DataInput;Lnet/minecraft/nbt/NbtSizeTracker;B)Lnet/minecraft/nbt/NbtElement;
intermediary method_52892
Lnet/minecraft/class_2507;method_52892(Ljava/io/DataInput;Lnet/minecraft/class_2505;B)Lnet/minecraft/class_2520;
official a
Lvk;a(Ljava/io/DataInput;Lvg;B)Lvu;
-