Files
DanhengServer-OpenSource/GameServer/Server/Packet/Recv/Lineup/HandlerChangeLineupLeaderCsReq.cs
Somebody 87d228eb79 Feature:Asynchronous Operation & Formatting Code
- Now the async operation is enabled!
- Code formatted by Resharper plugin <3
2024-07-22 17:12:03 +08:00

33 lines
1.2 KiB
C#

using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Proto;
using EggLink.DanhengServer.Server.Packet.Send.Lineup;
namespace EggLink.DanhengServer.Server.Packet.Recv.Lineup;
[Opcode(CmdIds.ChangeLineupLeaderCsReq)]
public class HandlerChangeLineupLeaderCsReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
var req = ChangeLineupLeaderCsReq.Parser.ParseFrom(data);
var player = connection.Player!;
if (player.LineupManager!.GetCurLineup() == null)
{
await connection.SendPacket(new PacketChangeLineupLeaderScRsp());
return;
}
var lineup = player.LineupManager!.GetCurLineup()!;
if (lineup.BaseAvatars?.Count <= (int)req.Slot)
{
await connection.SendPacket(new PacketChangeLineupLeaderScRsp());
return;
}
var leaderAvatarId = lineup.BaseAvatars![(int)req.Slot].BaseAvatarId;
lineup.LeaderAvatarId = leaderAvatarId;
await player.MissionManager!.HandleFinishType(MissionFinishTypeEnum.TeamLeaderChange);
await connection.SendPacket(new PacketChangeLineupLeaderScRsp(req.Slot));
}
}