Exemplo n.º 1
0
        /// <summary>
        /// Verify a user token and login.
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns>login result</returns>
        public virtual bool LogIn(string username, string password)
        {
            // if already online, deny.
            if (OnlinePlayers.Any(p => p.Username == username))
            {
                return(false);
            }

            if (!PlayerRepository.IsExsist(username))
            {
                return(false);
            }

            Player player = PlayerRepository.GetPlayer(username);

            if (player.Token.ToString() != password)
            {
                return(false);
            }

            OnlinePlayers.Add(player);
            Session.Value.Set(player).Exiting += Session_Exiting;
            LoggedIn?.Invoke(this, player);
            Logger.Info($"[{username}] login succeed");

            return(true);
        }