private static void WriteItemStack(PacketStream stream, ItemStack value, bool writeDefaultLength = true)
        {
            stream.Write(value.ID);
            if (value.Empty)
            {
                return;
            }

            stream.Write((byte)value.Count);
            stream.Write(value.Damage);
            if (value.Nbt == null)
            {
                stream.Write((short)-1);
                return;
            }

            var file = new NbtFile(value.Nbt);

            file.SaveToProtocolStream(stream, NbtCompression.GZip);
        }