/// <summary> /// Executes the command and sends response. /// </summary> /// <param name="s">The session.</param> /// <param name="i">The package info.</param> public override void ExecuteCommand(Session s, Package p) { PacketBRequestCityDataPacket Request = new PacketBRequestCityDataPacket(p.Content); if (s.Logger.IsDebugEnabled) { s.Logger.Debug($"Execute command: {Request}"); } _SendResponseCityDataStart(s, p, Request); _SendResponseGetContainerNumSlots(s, p, Request); /* * @TODO * //Inventory * new BCharacterStringListPacket(StringListTypes.Inventory, BRequestRetrievePersistentData.characterID, chRequestID, this).send(); * inventorySet = true; * * //BUnitClientStatePacket * new BUnitClientStatePacket(0, chRequestID, this).send(); * * */ _SendCityDataComplete(s, p, Request); }
/// <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) { PacketBRequestCityDataPacket Request = new PacketBRequestCityDataPacket(p.Content); Logger.Debug($"{p.Key}::ExecuteCommand - Execute command: {Request}"); SendResponseCityDataStart(s, p); SendResponseUnitClientState(s, p); BRequestInventoryDataPacket.InitInventory(s, p); SendCityDataComplete(s, p); }
/// <summary> /// Sends BResponseCityDataCompletePacket. /// </summary> /// <param name="s">The session.</param> /// <param name="p">Packet PacketBRequestCityDataPacket.</param> /// <param name="r">Packet PacketBRequestCityDataPacket content.</param> private static void _SendCityDataComplete(Session s, Package p, PacketBRequestCityDataPacket r) { PacketBResponseCityDataCompletePacket ResponseContent = new PacketBResponseCityDataCompletePacket(p.HeaderXuid); if (s.Logger.IsDebugEnabled) { s.Logger.Debug($"Command response: {ResponseContent}"); } byte[] Response = ResponseContent.ToByteArray(); Package Package = new Package(p.HeaderXuid, p.HeaderField20, p.HeaderServiceId, p.HeaderField22, (byte)PacketTypes.BResponseCityDataCompletePacket, p.HeaderRequestId, Response); byte[] ToSend = Package.ToByteArray(); s.Send(ToSend, 0, ToSend.Length); }
/// <summary> /// Sends GetContainerNumSlots. /// </summary> /// <param name="s">The session.</param> /// <param name="p">Packet BRequestRetrievePersistentData.</param> /// <param name="r">Packet BRequestRetrievePersistentData content.</param> private static void _SendResponseGetContainerNumSlots(Session s, Package p, PacketBRequestCityDataPacket r) { //@TODO }