/// <summary> /// Sends BResponseGetContainerNumSlots. /// </summary> /// <param name="s">The session.</param> /// <param name="p">Packet PacketBRequestInventoryDataPacket, PacketBRequestPopulateVendor or BRequestCityDataPacket.</param> /// <param name="i">The container information.</param> /// <param name="flag">Flag.</param> public static void SendResponseGetContainerNumSlots(Session s, Package p, ModelInventoryInfo i, byte flag = 0) { Character ObjCharacter = s.Player.Empire.CurrentCharacter; PacketBResponseGetContainerNumSlots ResponseContent = new PacketBResponseGetContainerNumSlots(ObjCharacter.Id, i.Id, i.Maxcapacity, 0, flag); Logger.Debug($"{p.Key}::SendResponseGetContainerNumSlots - Execute command: {ResponseContent}"); byte[] Response = ResponseContent.ToByteArray(); Package Package = new Package(p.HeaderXuid, p.HeaderField20, p.HeaderServiceId, p.HeaderField22, PacketTypes.BResponseGetContainerNumSlots, 0, Response); byte[] ToSend = Package.ToByteArray(); s.Send(ToSend, 0, ToSend.Length); }
/// <summary> /// Executes the command and sends response. /// </summary> /// <param name="s">The session.</param> /// <param name="p">The package info.</param> public override void ExecuteCommand(Session s, Package p) { PacketBRequestPopulateVendor Request = new PacketBRequestPopulateVendor(p.Content); Logger.Debug($"{p.Key}::ExecuteCommand - Execute command: {Request}"); ModelInventoryInfo Info = new ModelInventoryInfo() { Id = Request.Container, Maxcapacity = 0 }; if (Database.Vendors.TryGetValue(Request.Vendor, out Vendor v)) { BRequestInventoryDataPacket.SendResponseGetContainerNumSlots(s, p, Info, 0); BRequestInventoryDataPacket.SendResponseStringListInventory(s, p, v.ToXml(Request.Container)); } //@TODO log error if not exists }
public ModelInventory() { Info = new ModelInventoryInfo(); Inventory = new ModelInventoryInventory(); }