示例#1
0
        public static async void OnEnterLoginData(CustomPlayer player, Dictionary <string, string> loginData)
        {
            var col      = Context.MongoDB.GetCollection <AccountData>("accounts");
            var email    = loginData["email"];
            var password = loginData["password"];

            try {
                var filter = Builders <AccountData> .Filter.Eq("Email", email);

                var res = await col.Find(filter).Limit(1).SingleOrDefaultAsync();

                if (res == null)
                {
                    player.Emit("auth:loginFailed", "account doesn't exist");
                    return;
                }
                var isPasswordCorrect = PasswordHasher.VerifyHash(password, res !.Salt, res !.Password);
                if (isPasswordCorrect)
                {
                    player.Emit("auth:loginSuccess");
                    player.LoggedIn = true;
                    player.Data     = res;
                    spawnPlayer(player, 0);
                    return;
                }
            } catch (Exception e) {
                Alt.Log(e.ToString());
                player.Emit("auth:loginFailed", e.Message);
            }
        }
示例#2
0
        public static async void OnPlayerDead(CustomPlayer player, CustomPlayer killer, uint reason)
        {
            spawnPlayer(player, 2000);
            await Task.Delay(2000);

            player.Emit("player:onSpawn");
        }
示例#3
0
        public static async void OnEnterRegisterData(CustomPlayer player, Dictionary <string, string> registerData)
        {
            if (player.LoggedIn)
            {
                return;
            }
            var pData = new AccountData();

            pData.Email = registerData["email"];
            pData.Login = registerData["login"];
            var passAndSalt = PasswordHasher.CreatePasswordHash(registerData["password"]);

            pData.Password = passAndSalt.Item1;
            pData.Salt     = passAndSalt.Item2;
            try
            {
                pData.Save();
            }
            catch (MongoWriteException e)
            {
                Alt.Log(e.ToString());
                if (e.WriteError.Code == 11000)
                {
                    player.Emit("auth:registerFailed", 0, "Player with such email or login already exists!");
                }
                else
                {
                    player.Emit("auth:registerFailed", 1, e.Message);
                }
                return;
            }
            player.LoggedIn = true;
            player.Data     = pData;
            player.Emit("auth:registerSuccess");

            player.Model = (uint)PedModel.FreemodeMale01;
            spawnPlayer(player, 0);
        }
示例#4
0
 public static void OnPlayerJoin(CustomPlayer player, string reason)
 {
     player.Emit(AltVEventsConstants.Auth.ShowAuthScreen);
 }