Exemple #1
0
        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));
                }
            }
        }