Пример #1
0
        public void Disconnect()
        {
            this.SendPending();
            this.TerminateSocket();
            this.Expired = true;
            this.stack.Disponse();

            if (this.LoggedIn)
            {
                this.LoggedIn = false;
                ServerEvents.OnPart(this);
                UserPool.BroadcastToVroom(this.Vroom, AresTcpPackets.Part(this));
            }
        }
Пример #2
0
        private static void Login(UserObject userobj, AresTCPPacketReader packet, uint time)
        {
            userobj.PopulateCredentials(packet);
            if (!ServerEvents.OnJoinCheck(userobj))
            {
                userobj.Expired  = true;
                userobj.LoggedIn = userobj.Ghost;
            }
            if (!userobj.Ghost)
            {
                UserPool.BroadcastToVroom(userobj.Vroom, AresTcpPackets.Join(userobj));
            }

            userobj.LoggedIn = true;
            userobj.SendPacket(AresTcpPackets.LoginAck(userobj));
            userobj.SendPacket(AresTcpPackets.MyFeatures(userobj));
            userobj.SendPacket(AresTcpPackets.TopicFirst());
            UserPool.SendUserList(userobj);
            userobj.SendPacket(AresTcpPackets.OpChange(userobj));
            userobj.SendPacket(Avatars.Server(userobj));
            ServerEvents.OnJoin(userobj);
        }