Example #1
0
        public void CMD_UserRegistration(Client player, string password)
        {
            if (_userRepository.GetAccount(player.name).ToString() != player.name)
            {
                String saltedPassword = PasswordDerivation.Derive(password);

                bool anyData = API.hasEntityData(player, "FlyingHours");
                int  FlyingHours;

                if (anyData == true)
                {
                    FlyingHours = API.getEntityData(player, "FlyingHours");
                }
                else
                {
                    FlyingHours = 75462;
                }

                UserAccount account = new UserAccount
                {
                    Username    = player.name,
                    Hash        = saltedPassword,
                    Rank        = "Pilot",
                    Adminrank   = "User",
                    FlyingScore = FlyingHours
                };

                _userRepository.RegisterAccount(account);

                API.sendChatMessageToPlayer(player, "You're now registered!");
                API.sendChatMessageToAll(player.name + " has registered an account!");
                API.consoleOutput(player.name + " Has just registered!");
            }
            else
            {
                API.sendChatMessageToPlayer(player, "You have already registered an account!");
            }
        }
Example #2
0
        /// <summary>
        /// Funktion mit der wir einen Spieler in der Datenbank anlegen.
        /// </summary>
        /// <param name="iplayer"></param>
        /// <param name="password"></param>
        public static void RegisterPlayer(IPlayer iplayer, string password)
        {
            //Derive verschlüsselt das übergebene Passwort.
            string saltedPassword = PasswordDerivation.Derive(password);

            //Hier wird eine MySql-Verbindung aufgebaut.
            using (MySqlConnection connection = new MySqlConnection(Settings.Server_Settings.GetConnectionString())) {
                try {
                    //Hier wird die Verbindung geöffnet
                    connection.Open();

                    //Wir erstellen einen Befehl, der später ausgeführt werden soll
                    MySqlCommand command = connection.CreateCommand();

                    //Wir füllen den Befehl mit einem Querystring mit der Anweisung INSERT INTO
                    command.CommandText = "INSERT INTO users (name, password, level, adminlevel, cash) VALUES (@name, @password, @level, @adminlevel, @cash)";

                    //Wir fügen unsere gewünschten Variablen hinzu, welche in die Tabelle eingefügt werden sollen
                    command.Parameters.AddWithValue("@name", iplayer.Name);
                    command.Parameters.AddWithValue("@password", saltedPassword);
                    command.Parameters.AddWithValue("@level", iplayer.Level);
                    command.Parameters.AddWithValue("@adminlevel", iplayer.AdminLevel);
                    command.Parameters.AddWithValue("@cash", iplayer.Cash);

                    //Query wird ausgeführt
                    command.ExecuteNonQuery();

                    //Verbindung wird geschlossen
                    connection.Close();
                } catch (Exception e) {
                    //Bei Fehler geben wir Fehlermessage und Stacktrace auf die Konsole aus
                    NAPI.Util.ConsoleOutput($"[Exception] RegisterAccount: {e.Message}");
                    NAPI.Util.ConsoleOutput($"[Exception] RegisterAccount: {e.StackTrace}");
                }
            }
        }