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); }