public static async Task Handle(PacketReader reader, Presence user) { user.LastPong = 0; foreach (var(_, c) in Global.Channels) { await c.RemoveUser(user); } if (user.Match is not null) { await user.Match.Leave(user); } await Global.OnlineManager.Remove(user); await Global.OnlineManager.AddPacketToAllUsers(await FastPackets.Logout(user.Id)); XConsole.Log($"{user} logged out", ConsoleColor.Green); }
public static async Task Handle(PacketReader reader, Presence user) { var players = reader.ReadInt32Array(); foreach (var i in players) { if (i == Global.Bot.Id) { user.WaitingPackets.Enqueue(await FastPackets.BotStats()); continue; } var us = Global.OnlineManager.GetById(i); if (us is not null) { user.WaitingPackets.Enqueue(await FastPackets.UserStats(us)); } else { user.WaitingPackets.Enqueue(await FastPackets.Logout(i)); } } }