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); } }
public static async void OnPlayerDead(CustomPlayer player, CustomPlayer killer, uint reason) { spawnPlayer(player, 2000); await Task.Delay(2000); player.Emit("player:onSpawn"); }
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); }
public static void OnPlayerJoin(CustomPlayer player, string reason) { player.Emit(AltVEventsConstants.Auth.ShowAuthScreen); }