コード例 #1
0
        public void TryLogin(DbAccount user, EAClient client)
        {
            //is someone else already logged in as this user?
            var oldUser = Users.GetUserByName(user.Username);

            if (oldUser != null)
            {
                oldUser.Connection.Close(); //should remove the old user.
                Thread.Sleep(500);
            }

            var personas = new string[4];

            for (int i = 0; i < user.Personas.Count; i++)
            {
                personas[i] = user.Personas[i];
            }

            //make a user object from DB user
            var user2 = new User()
            {
                Connection = client,
                ID         = user.ID,
                Personas   = personas,
                Username   = user.Username,
                IP         = client.IP
            };

            Users.AddUser(user2);
            client.User = user2;

            client.SendMessage(new AuthOut()
            {
                TOS      = user.ID.ToString(),
                NAME     = user.Username,
                PERSONAS = string.Join(',', user.Personas)
            });

            Rooms.SendRooms(user2);
        }