public static void HandleIdentificationMessage(IdentificationMessage message, AuthClient client) { lock (LockObject) { Account account = AccountsProvider.DecryptCredentialsFromClient(client, message.sessionOptionalSalt.ToString(), message.credentials); Account theoricalAccount = AccountsProvider.GetAccountFromDb(account.Username); if (theoricalAccount == null) { client.Send(new IdentificationFailedMessage((sbyte)IdentificationFailureReasonEnum.WRONG_CREDENTIALS)); return; } if (theoricalAccount.Password == null || theoricalAccount.Password != account.Password) { client.Send(new IdentificationFailedMessage((sbyte)IdentificationFailureReasonEnum.WRONG_CREDENTIALS)); return; } if (theoricalAccount.Banned || BanIpRecord.IsBanned(client.SSyncClient.Ip.Split(':')[0])) { client.Send(new IdentificationFailedMessage((sbyte)IdentificationFailureReasonEnum.BANNED)); return; } client.Account = theoricalAccount; AccountInformationsRecord.CheckAccountInformations(client.Account.Id, ConfigurationManager.Instance.StartBankKamas); if (client.Account.Nickname == string.Empty || client.Account.Nickname == null) { client.Send(new NicknameRegistrationMessage()); return; } Login(client, message.autoconnect); } }
public static void SelectedServer(ServerSelectionMessage message, AuthClient client) { string host = ConfigurationManager.Instance.IsCustomHost == true ? ConfigurationManager.Instance.RealHost : ConfigurationManager.Instance.Host; var encrypted = AccountsProvider.EncryptTicket(ServersManager.TransfertToGame(client.Account), client.AesKey); client.Send(new SelectedServerDataMessage((ushort)ConfigurationManager.Instance.ServerId, host, (ushort)ConfigurationManager.Instance.WorldPort, true, encrypted)); client.Disconnect(); }
public static void BanIpCommand(string value, WorldClient client) { var target = WorldServer.Instance.GetOnlineClient(value); if (target != null) { AccountsProvider.BanIp(target.SSyncClient.Ip.Split(':')[0]); target.Disconnect(0, "Vous avez été banni par " + client.Character.Record.Name); } else { client.Character.Reply("le joueur n'éxiste pas ou n'est pas connécté."); } }
public static void BanCommand(string value, WorldClient client) { var target = WorldServer.Instance.GetOnlineClient(value); if (target != null) { AccountsProvider.Ban(target.Account.Username); target.Disconnect(0, "Vous avez été banni par " + client.Character.Record.Name); } else { client.Character.Reply("Le client n'éxiste pas..."); } }
public async Task GetAllUsers_ReturnsAllUsers() { //Arrange var context = _fixture.ZipPayDbContext; var mockUsersProvider = new Mock <IUsersProvider>(); mockUsersProvider.Setup(x => x.GetUser(It.IsAny <int>())).Returns(Task.FromResult(new UserModel())); var accountsProvider = new AccountsProvider(context, _logger.Object, _mapper, mockUsersProvider.Object); //Act var accounts = await accountsProvider.GetAllAccounts(); //Assert Assert.True(accounts.Any()); }
public async Task CreateAccount_UserDoesntExist() { //Arrange var context = _fixture.ZipPayDbContext; var mockUsersProvider = new Mock <IUsersProvider>(); var accountsProvider = new AccountsProvider(context, _logger.Object, _mapper, mockUsersProvider.Object); //Act var accountCreationModel = new AccountCreationModel { UserId = 1000, FirstName = "Test", SecondName = "TestSecondName" }; //Assert await Assert.ThrowsAsync <NotFoundException>(() => accountsProvider.CreateAccount(accountCreationModel)); }
public async Task CreateAccount_AccountCreated() { //Arrange var context = _fixture.ZipPayDbContext; var userProvider = new UsersProvider(context, new Mock <ILogger <UsersProvider> >().Object, _mapper); var accountsProvider = new AccountsProvider(context, _logger.Object, _mapper, userProvider); //Act var accountCreationModel = new AccountCreationModel { UserId = 8, FirstName = "Test", SecondName = "TestSecondName" }; var result = await accountsProvider.CreateAccount(accountCreationModel); //Assert Assert.Equal("TestSecondName", result.SecondName); }
public static void PointKamasCommand(string value, WorldClient client) { if (client.Account.PointsCount == 0) { client.Character.Reply("Vous ne possedez pas de points, votez sur " + ConstantsRepertory.VOTE_URL, Color.MediumPurple); return; } client.Character.Reply("Vous avez converti vos " + client.Account.PointsCount + " point(s) en kamas!", Color.MediumPurple, true); if (AccountsProvider.RemovePoints(client.Account)) { client.Character.AddKamas(client.Account.PointsCount * 1000, true); client.Account.PointsCount = 0; } else { client.Character.NotificationError("Unable to remove points, unknow error"); } }
public static void HandleNicknameChoice(NicknameChoiceRequestMessage message, AuthClient client) { if (client.Account.Username == message.nickname) { client.Send(new NicknameRefusedMessage((sbyte)NicknameErrorEnum.SAME_AS_LOGIN)); return; } if (message.nickname == string.Empty || message.nickname.Length >= 15 || message.nickname.Contains('\'')) { client.Send(new NicknameRefusedMessage((sbyte)NicknameErrorEnum.INVALID_NICK)); return; } if (AccountsProvider.CheckAndApplyNickname(client, message.nickname)) { client.Send(new NicknameAcceptedMessage()); Login(client, false); } else { client.Send(new NicknameRefusedMessage((sbyte)NicknameErrorEnum.ALREADY_USED)); } }