Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        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]);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
 public NbtTag(NbtBlob value) => Value = value;