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); }