using FSO.Common.Serialization; using FSO.Files.Formats.tsodata; using Mina.Core.Buffer; using System.Collections.Generic; using System.IO; namespace FSO.Server.Protocol.Gluon.Packets { public class SendCityMail : AbstractGluonCallPacket { public List Items { get; set; } public SendCityMail() { } public SendCityMail(List items) { Items = items; } public override void Deserialize(IoBuffer input, ISerializationContext context) { base.Deserialize(input, context); var itemCount = input.GetInt32(); var dataSize = input.GetInt32(); var data = input.GetSlice(dataSize).GetBytes(); using (var mem = new MemoryStream(data)) { Items = new List(); for (int i = 0; i < itemCount; i++) { var message = new MessageItem(); message.Read(mem); Items.Add(message); } } } public override void Serialize(IoBuffer output, ISerializationContext context) { base.Serialize(output, context); byte[] data = null; using (var mem = new MemoryStream()) { foreach (var item in Items) { item.Save(mem); } data = mem.ToArray(); } output.PutInt32(Items.Count); output.PutInt32(data.Length); output.Put(data); } public override GluonPacketType GetPacketType() { return GluonPacketType.CitySendMail; } } }