public void TestWriteReadCompressed() { var stream = new MemoryStream(); var blob = new NbtBlob("Hey", new Tag.Compound { ["abc"] = new Tag.Int(10), ["bcd"] = new Tag.List { new Tag.Compound { ["hey"] = new Tag.ByteArray(new byte[] { 1, 2, 3, 4 }) }, new Tag.Compound { ["gui"] = new Tag.String("String testinggggg"), ["ajaja"] = new Tag.Byte(0) } } }); stream.WriteCompressedNbtBlob(blob); stream.Seek(0, SeekOrigin.Begin); _output.WriteLine(blob.Root.ToString()); var blob2 = stream.ReadCompressedNbtBlob(); _output.WriteLine(blob2.Root.ToString()); Assert.Equal(10, blob2.Root.Get <Tag.Int>("abc").Value); Assert.Equal("String testinggggg", blob2.Root.Get <Tag.List>("bcd").Get <Tag.Compound>(1).Get <Tag.String>("gui")); }
public void TestWriteRead() { var stream = new MemoryStream(); var writer = new PrimitiveWriter(stream); var blob = new NbtBlob("Hey", new Tag.Compound { ["abc"] = new Tag.Int(10), ["bcd"] = new Tag.List { new Tag.Compound { ["hey"] = new Tag.ByteArray(new byte[] { 1, 2, 3, 4 }) } } }); writer.WriteNbtBlob(blob); stream.Seek(0, SeekOrigin.Begin); _output.WriteLine(blob.Root.ToString()); var blob2 = new PrimitiveReader(stream).ReadNbtBlob(); _output.WriteLine(blob2.Root.ToString()); Assert.Equal(10, blob2.Root.Get <Tag.Int>("abc").Value); Assert.Equal(3, blob2.Root.Get <Tag.List>("bcd").Get <Tag.Compound>(0).Get <Tag.ByteArray>("hey")[2]); }
/// <summary> /// Writes an Uncompressed NbtBlob. /// </summary> /// <exception cref="NBTException">Invalid Nbt.</exception> public static void WriteNbtBlob(this PrimitiveWriter writer, NbtBlob blob) { if (blob.IsEmpty) { writer.WriteByte(Tag.EndId); return; } writer.WriteByte(blob.Root.ID); writer.WriteStringNbt(blob.Name); blob.Root.Write(writer); }
public NbtTag(NbtBlob value) => Value = value;