Exemple #1
0
        /// <summary>
        /// Register a new player
        /// Returns null if it fails
        /// </summary>
        /// <param name="username">Username of the player</param>
        /// <param name="password">Password of the player</param>
        /// <returns>The player or null depending on how it's result</returns>
        public static KeyValuePair <DBProfile_Login, string> RegisterPlayer(string username, string password)
        {
            string hash = DBPasswordHash.GetHashString(password);

            if (!PlayerExist(username))
            {
                string sql = String.Format("INSERT INTO [dbo].[{0}] (Username,Password) VALUES('{1}', '{2}'); "
                                           , tableName
                                           , username
                                           , hash);

                var sqlResult = DBEndPoint.ExecuteSQL(sql);
                if (sqlResult.Key)
                {
                    var player = GetPlayer(username, hash);
                    RegisterPlayerInOtherTables(player.id);
                    return(new KeyValuePair <DBProfile_Login, string>(player, "Succesfully generated"));
                }
                else
                {
                    return(new KeyValuePair <DBProfile_Login, string>(null, "Internal issue"));
                }
            }
            else
            {
                return(new KeyValuePair <DBProfile_Login, string>(null, "A player with that name already exist"));
            }
        }
        public void Handle(object objData, Server_ServerClient client)
        {
            var data           = (Message_ClientRequest_Login)objData;
            var passwordHashed = DBPasswordHash.GetHashString(data.password);
            var player         = DBLogin.GetPlayer(data.name, passwordHashed);
            var msg            = new Message_ServerResponse_Login(player);

            server.messageSender.Send(msg, client);
        }