public async Task GetPlayer() { var request = CommonRequest.GetPlayerMessageRequest(); var serverRequest = GetRequestBuilder().GetRequestEnvelope(new[] { request }); var serverResponse = await PostProto <Request>(serverRequest).ConfigureAwait(false); ParseServerResponse(serverResponse); if (serverResponse.StatusCode == ResponseEnvelope.Types.StatusCode.Redirect) { await GetPlayer().ConfigureAwait(false); return; } var responses = serverResponse.Returns; if (responses != null) { var getPlayerResponse = new GetPlayerResponse(); if (responses.Count > 0) { getPlayerResponse.MergeFrom(responses[0]); CommonRequest.ProcessGetPlayerResponse(Client, getPlayerResponse); } } }
/// <summary> /// Gets the player. /// </summary> /// <param name="accessToken">The access token.</param> /// <param name="playerId">The player identifier.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns></returns> public async Task <GetPlayerResponse> GetPlayer(String accessToken, Guid playerId, CancellationToken cancellationToken) { GetPlayerResponse response = null; String requestUri = $"{this.BaseAddress}/api/players/{playerId}"; try { // Add the access token to the client headers this.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); // Make the Http Call here HttpResponseMessage httpResponse = await this.HttpClient.GetAsync(requestUri, cancellationToken); // Process the response String content = await this.HandleResponse(httpResponse, cancellationToken); // call was successful so now deserialise the body to the response object response = JsonConvert.DeserializeObject <GetPlayerResponse>(content); } catch (Exception ex) { // An exception has occurred, add some additional information to the message Exception exception = new Exception("Error getting player details.", ex); throw exception; } return(response); }
private async Task loginPtc(string username, string password) { try { // Creating the Settings Logger.Write("Adjusting the Settings."); UserSettings.Default.AuthType = AuthType.Ptc.ToString(); UserSettings.Default.PtcUsername = username; UserSettings.Default.PtcPassword = password; this.settings = new Settings(); // Begin Login Logger.Write("Trying to Login with PTC Credentials..."); Client client = new Client(this.settings); await client.DoPtcLogin(this.settings.PtcUsername, this.settings.PtcPassword); await client.SetServer(); // Server Ready Logger.Write("Connected! Server is Ready."); this.client = client; Logger.Write("Attempting to Retrieve Inventory and Player Profile..."); this.inventory = new Inventory(client); this.profile = await client.GetProfile(); enableButtons(); } catch { Logger.Write("Unable to Connect using the PTC Credentials."); MessageBox.Show("Unable to Authenticate with Login Server.", "Login Problem"); Application.Exit(); } }
public async ValueTask HandleAsync(Msg msg, CancellationToken cancellationToken) { var query = GetPlayerRequest.Parser.ParseFrom(msg.Data); var playerReg = await m_PlayerService.GetAsync(new GetPlayerBySessionIdQuery { SessionId = query.SessionId }).ConfigureAwait(false); var reply = new GetPlayerResponse(); if (playerReg != null) { reply.Player = new PlayerInfo { SessionId = playerReg.SessionId, ConnectorId = playerReg.ConnectorId, Name = playerReg.Name }; await m_MessageQueueService.PublishAsync(msg.Reply, reply.ToByteArray()).ConfigureAwait(false); } else { reply.Player = null; await m_MessageQueueService.PublishAsync(msg.Reply, reply.ToByteArray()).ConfigureAwait(false); } }
private async void Execute() { await check(); try { var client = Logic.Logic._client; if (client.readyToUse != false) { profile = await client.Player.GetPlayer(); await Task.Delay(1000); // Pause to simulate human speed. Text = "User: "******"[PokemonList-Error] " + e.StackTrace); await Task.Delay(1000); // Lets the API make a little pause, so we dont get blocked Execute(); } }
public void Execute(GetPlayerResponse prof, IOrderedEnumerable <PokemonData> poks) { profile = prof; pokemons = poks; updatePlayerImages(); updatePlayerInfoLabels(); }
private async Task loginGoogle() { try { // Creating the Settings Logger.Write("Adjusting the Settings."); UserSettings.Default.AuthType = AuthType.Google.ToString(); this.settings = new Settings(); // Begin Login Logger.Write("Trying to Login with Google Token..."); Client client = new Client(this.settings); await client.DoGoogleLogin(); await client.SetServer(); // Server Ready Logger.Write("Connected! Server is Ready."); this.client = client; Logger.Write("Attempting to Retrieve Inventory and Player Profile..."); this.inventory = new Inventory(client); this.profile = await client.GetProfile(); enableButtons(); } catch { Logger.Write("Unable to Connect using the Google Token."); MessageBox.Show("Unable to Authenticate with Login Server.", "Login Problem"); Application.Exit(); } }
public async Task PlayerController_GET_GetPlayer_WithMemberships_PlayerIsReturned() { // 1. Arrange HttpClient client = this.WebApplicationFactory.AddPlayer().CreateClient(); String uri = $"api/players/{TestData.PlayerId}?includeMemberships=true"; client.DefaultRequestHeaders.Add("api-version", "2.0"); // 2. Act HttpResponseMessage response = await client.GetAsync(uri, CancellationToken.None); // 3. Assert response.StatusCode.ShouldBe(HttpStatusCode.OK); String responseAsJson = await response.Content.ReadAsStringAsync(); responseAsJson.ShouldNotBeNullOrEmpty(); GetPlayerResponse responseObject = JsonConvert.DeserializeObject <GetPlayerResponse>(responseAsJson); responseObject.ShouldNotBeNull(); responseObject.Id.ShouldBe(TestData.PlayerId); responseObject.ClubMemberships.ShouldNotBeNull(); responseObject.ClubMemberships.ShouldNotBeEmpty(); responseObject.SignedUpTournaments.ShouldBeNull(); }
public async void Execute(bool refreshData = true) { pictureBoxTeam.Image = null; pictureBoxPlayerAvatar.Image = null; pictureBoxBuddyPokemon.Image = null; labelUserProperty1Value.Text = ""; labelUserProperty2Value.Text = ""; labelUserProperty3Value.Text = ""; labelUserProperty4Value.Text = ""; labelUserProperty5Value.Text = ""; labelUserProperty6Value.Text = ""; await check(); var client = Logic.Logic.Client; if (client.readyToUse != false) { /*labelUserProperty1Title.Text = "Username:"; TODO: internationalize*/ if (refreshData) { profile = await client.Player.GetPlayer(); await Task.Delay(1000); // Pause to simulate human speed. var playerStats = await client.Inventory.GetPlayerStats(); stats = playerStats.First(); } updatePlayerImages(); updatePlayerInfoLabels(); } }
public async Task <GetPlayerResponse> GetCachedProfile(bool request = false) { var now = DateTime.Now; var ss = new SemaphoreSlim(10); if (_lastRefresh.AddSeconds(30).Ticks > now.Ticks && request == false) { return(_cachedProfile); } await ss.WaitAsync(); try { _lastRefresh = now; try { _cachedProfile = await GetProfile(); } catch { } } finally { ss.Release(); } return(_cachedProfile); }
public void Execute(bool refreshData = true) { pictureBoxTeam.Image = null; pictureBoxPlayerAvatar.Image = null; pictureBoxBuddyPokemon.Image = null; foreach (ListViewItem element in listView.Items) { element.SubItems[2].Text = ""; } var client = Logic.Logic.objClient; if (client != null && client.ReadyToUse) { if (refreshData) { profile = client.Player.GetPlayer(); RandomHelper.RandomSleep(300, 400); var playerStats = client.Inventory.GetPlayerStats(); stats = playerStats.First(); } updatePlayerImages(); updatePlayerInfoLabels(); } labelPokemons.Text = "" + Logic.Functions.Setout.pokemonCatchCount; labelPokestops.Text = "" + Logic.Functions.Setout.pokeStopFarmedCount; labelTimeLeft.Text = "" + Logic.Functions.Setout.timeLeftToNextLevel; }
public void Execute(bool refreshData = true) { pictureBoxTeam.Image = null; pictureBoxPlayerAvatar.Image = null; pictureBoxBuddyPokemon.Image = null; foreach (ListViewItem element in listView.Items) { element.SubItems[2].Text = ""; } var client = Logic.Logic.objClient; if (client != null && client.ReadyToUse) { if (refreshData) { profile = client.Player.GetPlayer().Result; RandomHelper.RandomSleep(300, 400); var playerStats = client.Inventory.GetPlayerStats().Result; stats = playerStats.First(); } updatePlayerImages(); updatePlayerInfoLabels(); } }
public async Task <IActionResult> GetPlayer([FromRoute] Guid playerId, [FromQuery] Boolean includeMemberships, [FromQuery] Boolean includeTournamentSignups, CancellationToken cancellationToken) { // Get the Player Id claim from the user Claim playerIdClaim = ClaimsHelper.GetUserClaim(this.User, CustomClaims.PlayerId, playerId.ToString()); Boolean validationResult = ClaimsHelper.ValidateRouteParameter(playerId, playerIdClaim); if (validationResult == false) { return(this.Forbid()); } GetPlayerDetailsResponse playerDetails = await this.Manager.GetPlayerDetails(Guid.Parse(playerIdClaim.Value), cancellationToken); List <ClubMembershipResponse> membershipList = null; if (includeMemberships) { membershipList = await this.Manager.GetPlayersClubMemberships(Guid.Parse(playerIdClaim.Value), cancellationToken); } PlayerSignedUpTournamentsResponse signedUpTournaments = null; if (includeTournamentSignups) { signedUpTournaments = await this.Manager.GetPlayerSignedUpTournaments(Guid.Parse(playerIdClaim.Value), cancellationToken); } GetPlayerResponse playerResponse = this.ConvertGetPlayerDetailsResponse(playerId, playerDetails, membershipList, signedUpTournaments); return(this.Ok(playerResponse)); }
public async Task PostLoginExecute() { while (true) { _playerProfile = await _client.GetProfile(); await DisplayPlayerLevelInTitle(); if (_clientSettings.EvolveAllPokemonWithEnoughCandy) { await EvolveAllPokemonWithEnoughCandy(_clientSettings.PokemonsToEvolve); } if (_clientSettings.TransferDuplicatePokemon) { await TransferDuplicatePokemon(); } await DisplayHighests(); await RecycleItems(); await ExecuteFarmingPokestopsAndPokemons(); /* * Example calls below * * var profile = await _client.GetProfile(); * var settings = await _client.GetSettings(); * var mapObjects = await _client.GetMapObjects(); * var inventory = await _client.GetInventory(); * var pokemons = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon).Where(p => p != null && p?.PokemonId > 0); */ await Task.Delay(10000); } }
private async Task DisplayPlayerLevelInTitle(bool updateOnly = false) { _playerProfile = _playerProfile.Profile != null ? _playerProfile : await _client.GetProfile(); var playerName = _playerProfile.Profile.Username ?? ""; var playerStats = await _inventory.GetPlayerStats(); var playerStat = playerStats.FirstOrDefault(); if (playerStat != null) { var xpDifference = GetXPDiff(playerStat.Level); var message = $"{playerName} | Level {playerStat.Level}: {playerStat.Experience - playerStat.PrevLevelXp - xpDifference}/{playerStat.NextLevelXp - playerStat.PrevLevelXp - xpDifference}XP"; Console.Title = message; if (updateOnly == false) { Logger.Write(message); } } if (updateOnly == false) { await Task.Delay(5000); } }
private void Execute() { try { var client = Logic.Logic.objClient; if (!skipReadyToUse) { // Wait to client is ready to use while (client == null || !client.ReadyToUse) { Logger.Debug("Client not ready to use. Waiting 5 seconds to retry"); RandomHelper.RandomSleep(5000, 5100); client = Logic.Logic.objClient; } profile = client.Player.GetPlayer(); RandomHelper.RandomSleep(1000, 1100); // Pause to simulate human speed. Text = "User: "******"[PokemonList-Error] " + e.StackTrace); RandomHelper.RandomSleep(1000, 1100); // Lets the API make a little pause, so we dont get blocked } }
public void PostLoginExecute() { try { //update user location on map Task.Factory.StartNew(() => Logic.Instance.infoObservable.PushNewGeoLocations(new GeoCoordinate(GlobalVars.latitude, GlobalVars.longitude))); GetPlayerResponse profil = objClient.Player.GetPlayer(); objClient.Inventory.ExportPokemonToCSV(profil.PlayerData); Setout.Execute(); ExecuteFarmingPokestopsAndPokemons(objClient); } catch (AccessTokenExpiredException) { throw new AccessTokenExpiredException(); } catch (Exception ex) { Logger.Error($"Exception: {ex}"); if (BotSettings.RelocateDefaultLocation) { Logger.Info("Detected User Request to Relocate to a new farming spot!"); } } }
public async Task <GetPlayerResponse> GetPlayerData() { if (_player == null) { _player = await _client.Player.GetPlayer().ConfigureAwait(false); } return(_player); }
public async Task <IEnumerable <InventoryItem> > GetCachedInventory() { if (_player == null) { _player = await GetPlayerData().ConfigureAwait(false); } return(_client.Inventory.InventoryItems.Select(kvp => kvp.Value)); }
public GetPlayerResponse GetPlayer(bool forceRequest = true) { if (forceRequest) { PlayerResponse = PostProtoPayloadCommonR <Request, GetPlayerResponse>(RequestType.GetPlayer, CommonRequest.GetPlayerMessageRequest(LocaleInfo.Country, LocaleInfo.Language, LocaleInfo.TimeZone)).Result; } return(PlayerResponse); }
public async Task <GetPlayerResponse> GetPlayer(bool addCommonRequests = true, bool addChallengeRequests = false) { var getPlayerRequest = new Request { RequestType = RequestType.GetPlayer, RequestMessage = new GetPlayerMessage().ToByteString() }; if (addCommonRequests) { var requestEnvelope = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(getPlayerRequest, Client)).ConfigureAwait(false); Tuple <GetPlayerResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, GetPlayerResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(requestEnvelope).ConfigureAwait(false); GetPlayerResponse getPlayerResponse = response.Item1; CommonRequest.ProcessGetPlayerResponse(Client, getPlayerResponse); CheckChallengeResponse checkChallengeResponse = response.Item2; CommonRequest.ProcessCheckChallengeResponse(Client, checkChallengeResponse); GetInventoryResponse getInventoryResponse = response.Item4; CommonRequest.ProcessGetInventoryResponse(Client, getInventoryResponse); DownloadSettingsResponse downloadSettingsResponse = response.Item6; CommonRequest.ProcessDownloadSettingsResponse(Client, downloadSettingsResponse); return(response.Item1); } if (addChallengeRequests) { var challengeRequest = new Request { RequestType = RequestType.CheckChallenge, RequestMessage = new CheckChallengeMessage().ToByteString() }; var requestEnvelope = await GetRequestBuilder().GetRequestEnvelope(new Request[] { getPlayerRequest, challengeRequest }).ConfigureAwait(false); Tuple <GetPlayerResponse, CheckChallengeResponse> response = await PostProtoPayload <Request, GetPlayerResponse, CheckChallengeResponse>(requestEnvelope).ConfigureAwait(false); CommonRequest.ProcessGetPlayerResponse(Client, response.Item1); return(response.Item1); } else { var requestEnvelope = await GetRequestBuilder().GetRequestEnvelope(new Request[] { getPlayerRequest }).ConfigureAwait(false); GetPlayerResponse getPlayerResponse = await PostProtoPayload <Request, GetPlayerResponse>(requestEnvelope).ConfigureAwait(false); CommonRequest.ProcessGetPlayerResponse(Client, getPlayerResponse); return(getPlayerResponse); } }
public IEnumerable <InventoryItem> GetCachedInventory() { if (_player == null) { _player = GetPlayerData().Result; } return(_client.Inventory.InventoryItems.Select(kvp => kvp.Value)); }
public async Task ThenTheNewExactHandicapForPlayerNumberIsAdjustedTo(String playerNumber, Decimal exactHandicap) { RegisterPlayerResponse registerPlayerResponse = this.TestingContext.GetRegisterPlayerResponse(playerNumber); GetPlayerResponse player = await this.TestingContext.DockerHelper.PlayerClient.GetPlayer(this.TestingContext.PlayerToken, registerPlayerResponse.PlayerId, CancellationToken.None).ConfigureAwait(false); player.ExactHandicap.ShouldBe(exactHandicap); }
internal void OnProfileUpdate(ProfileEvent profile) { var stats = profile.Stats; Exp = stats.FirstOrDefault(x => x.Experience > 0).Experience; LevelExp = stats.FirstOrDefault(x => x.NextLevelXp > 0).NextLevelXp; this.playerProfile = profile.Profile; }
private void PlayerReceived(object sender, GetPlayerResponse e) { if (e.Success && e.PlayerData != null) { Profile = e.PlayerData; //ApiClient.Download.QueueDownloadRemoteConfigVersionRequest(); //ApiClient.Download.QueueGetAssetDigestRequest(); //ApiClient.Player.QueueGetLevelUpRewardsRequest(); } }
public async Task <MethodResult> GetPlayer() { try { if (!_client.LoggedIn) { MethodResult result = await Login(); if (!result.Success) { return(result); } } var response = await _client.ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request { RequestType = RequestType.GetPlayer, RequestMessage = new GetPlayerMessage { PlayerLocale = _client.LocaleInfo.PlayerLocale() }.ToByteString() }); GetPlayerResponse getPlayerResponse = null; try { getPlayerResponse = GetPlayerResponse.Parser.ParseFrom(response); PlayerData = getPlayerResponse.PlayerData; return(new MethodResult { Success = true }); } catch (Exception ex) { if (response.IsEmpty) { LogCaller(new LoggerEventArgs("Failed to get player stats", LoggerTypes.Exception, ex)); } return(new MethodResult()); } } catch (Exception ex) { LogCaller(new LoggerEventArgs("Failed to get player stats", LoggerTypes.Exception, ex)); return(new MethodResult { Message = "Failed to get player stats" }); } }
public void GetPlayerGhosts(GetGhostsParams Params, Action <GetPlayerGhostsResult> callback) { string URL = GetURL() + "/requests/get_all_player_ghosts.php"; string json = JsonUtility.ToJson(Params, true); StartCoroutine(SendGETRequest(URL, json, (string Result) => { GetPlayerResponse Response = JsonUtility.FromJson <GetPlayerResponse>(Result); callback(Response != null ? Response.body : new GetPlayerGhostsResult()); })); }
public async Task <GetInventoryResponse> GetCachedInventory() { lock (_player) { if (_player == null) { _player = GetPlayerData().Result; } } return(_cachedInventory); }
public async void GetPlayerData() { for (int i = 0; i < 3; i++) { _player = await _client.Player.GetPlayer(); if (_player != null) { break; } } }
public async Task <IActionResult> GetPlayer([FromRoute] Guid playerId, [FromQuery] Boolean includeMemberships, CancellationToken cancellationToken) { PlayerAggregate player = await this.PlayerRepository.GetLatestVersion(playerId, cancellationToken); if (!player.HasBeenRegistered) { return(this.NotFound($"Player not found with Id {playerId}")); } GetPlayerResponse playerResponse = new GetPlayerResponse { DateOfBirth = player.DateOfBirth, EmailAddress = player.EmailAddress, HasBeenRegistered = player.HasBeenRegistered, ExactHandicap = player.ExactHandicap, FirstName = player.FirstName, FullName = player.FullName, Gender = player.Gender, HandicapCategory = player.HandicapCategory, LastName = player.LastName, MiddleName = player.MiddleName, PlayingHandicap = player.PlayingHandicap, SecurityUserId = player.SecurityUserId }; if (includeMemberships) { List <ClubMembershipResponse> playerMemberships = await this.Manager.GetPlayersClubMemberships(playerId, cancellationToken); if (playerMemberships != null && playerMemberships.Count != 0) { playerMemberships.ForEach(p => { playerResponse.ClubMemberships.Add(new PlayerClubMembership { MembershipId = p.MembershipId, Status = p.Status.ConvertTo <MembershipStatus>(), MembershipNumber = p.MembershipNumber, RejectionReason = p.RejectionReason, AcceptedDateTime = p.AcceptedDateTime, GolfClubId = p.GolfClubId, GolfClubName = p.GolfClubName, RejectedDateTime = p.RejectedDateTime }); }); } } return(this.Ok(playerResponse)); }
private async Task DisplayPlayerLevelInTitle() { _playerProfile = _playerProfile.Profile != null ? _playerProfile : await _client.GetProfile(); var playerName = _playerProfile.Profile.Username != null ? _playerProfile.Profile.Username : ""; var playerStats = await _inventory.GetPlayerStats(); var playerStat = playerStats.FirstOrDefault(); if (playerStat != null) { var message = $"Character Level {playerName} {playerStat.Level:0} - ({playerStat.Experience - playerStat.PrevLevelXp:0} / {playerStat.NextLevelXp - playerStat.PrevLevelXp:0} XP)"; Console.Title = message; Logger.Write(message); } await Task.Delay(5000); }
private async Task DisplayPlayerLevelInTitle(bool updateOnly = false) { _playerProfile = _playerProfile.Profile != null ? _playerProfile : await _client.GetProfile(); var playerName = _playerProfile.Profile.Username ?? ""; var playerStats = await _inventory.GetPlayerStats(); var playerStat = playerStats.FirstOrDefault(); if (playerStat != null) { var xpDifference = GetXPDiff(playerStat.Level); var message = $"{playerName} | Level {playerStat.Level}: {playerStat.Experience - playerStat.PrevLevelXp - xpDifference}/{playerStat.NextLevelXp - playerStat.PrevLevelXp - xpDifference}XP"; Console.Title = message; if (updateOnly == false) Logger.Write(message); } if (updateOnly == false) await Task.Delay(5000); }
public async Task PostLoginExecute() { while (true) { _playerProfile = await _client.GetProfile(); await DisplayPlayerLevelInTitle(); if (_clientSettings.EvolveAllPokemonWithEnoughCandy) await EvolveAllPokemonWithEnoughCandy(_clientSettings.PokemonsToEvolve); if (_clientSettings.TransferDuplicatePokemon) await TransferDuplicatePokemon(); await DisplayHighests(); await RecycleItems(); await ExecuteFarmingPokestopsAndPokemons(); /* * Example calls below * var profile = await _client.GetProfile(); var settings = await _client.GetSettings(); var mapObjects = await _client.GetMapObjects(); var inventory = await _client.GetInventory(); var pokemons = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon).Where(p => p != null && p?.PokemonId > 0); */ await Task.Delay(10000); } }
private async void Execute() { EnabledButton(false); textBox1.Text = "Reloading Pokemon list."; client = new Client(ClientSettings); try { switch (ClientSettings.AuthType) { case AuthType.Ptc: await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword); break; case AuthType.Google: await client.DoGoogleLogin(); break; } await client.SetServer(); profile = await client.GetProfile(); inventory = await client.GetInventory(); pokemons = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.Pokemon) .Where(p => p != null && p?.PokemonId > 0) .OrderByDescending(key => key.Cp); var families = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.PokemonFamily) .Where(p => p != null && (int)p?.FamilyId > 0) .OrderByDescending(p => (int)p.FamilyId); var imageSize = 50; var imageList = new ImageList { ImageSize = new Size(imageSize, imageSize) }; listView1.ShowItemToolTips = true; listView1.SmallImageList = imageList; var templates = await client.GetItemTemplates(); var myPokemonSettings = templates.ItemTemplates.Select(i => i.PokemonSettings).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonSettings = myPokemonSettings.ToList(); var myPokemonFamilies = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PokemonFamily).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonFamilies = myPokemonFamilies.ToArray(); listView1.DoubleBuffered(true); listView1.View = View.Details; ColumnHeader columnheader; columnheader = new ColumnHeader(); columnheader.Text = "Name"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "CP"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "IV A-D-S"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Candy"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Evolvable?"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Height"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Weight"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Attack"; listView1.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "SpecialAttack"; listView1.Columns.Add(columnheader); foreach (var pokemon in pokemons) { Bitmap pokemonImage = null; await Task.Run(() => { pokemonImage = GetPokemonImage((int)pokemon.PokemonId); }); imageList.Images.Add(pokemon.PokemonId.ToString(), pokemonImage); listView1.LargeImageList = imageList; var listViewItem = new ListViewItem(); listViewItem.Tag = pokemon; var currentCandy = families .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId) .Select(f => f.Candy) .First(); var currIv = Math.Round(Perfect(pokemon)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Cp)); listViewItem.SubItems.Add(string.Format("{0}% {1}-{2}-{3}", currIv, pokemon.IndividualAttack, pokemon.IndividualDefense, pokemon.IndividualStamina)); listViewItem.SubItems.Add(string.Format("{0}", currentCandy)); listViewItem.ImageKey = pokemon.PokemonId.ToString(); var pokemonId2 = pokemon.PokemonId; var pokemonName = pokemon.Id; listViewItem.Text = string.Format("{0}", pokemon.PokemonId); listViewItem.ToolTipText = "Favorite: " + pokemon.Favorite + "\nNickname: " + pokemon.Nickname; var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.PokemonId); var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId); if (settings.EvolutionIds.Count > 0 && familyCandy.Candy > settings.CandyToEvolve) { listViewItem.SubItems.Add("Y ("+ settings.CandyToEvolve+")"); listViewItem.Checked = true; } else { if (settings.EvolutionIds.Count > 0) listViewItem.SubItems.Add("N (" + familyCandy.Candy + "/" + settings.CandyToEvolve + ")"); else listViewItem.SubItems.Add("N (Max)"); } listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.HeightM, 2))); listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.WeightKg,2))); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move1)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move2)); listView1.Items.Add(listViewItem); } listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); Text = "Pokemon List | User: "******" | Pokemons: " + pokemons.Count() + "/" + profile.Profile.PokeStorage; EnabledButton(true); textBox1.Text = string.Empty; } catch (TaskCanceledException e) { textBox1.Text = e.Message; Execute(); } catch (UriFormatException e) { textBox1.Text = e.Message; Execute(); } catch (ArgumentOutOfRangeException e) { textBox1.Text = e.Message; Execute(); } catch (ArgumentNullException e) { textBox1.Text = e.Message; Execute(); } catch (NullReferenceException e) { textBox1.Text = e.Message; Execute(); } catch (Exception e) { textBox1.Text = e.Message; Execute(); } }
public void SetUsername(GetPlayerResponse profile) { _playerName = profile.PlayerData.Username ?? ""; }
public async Task PostLoginExecute() { while (true) { try { _playerProfile = await _client.GetProfile(); await DisplayPlayerLevelInTitle(); if (_clientSettings.EvolveAllPokemonWithEnoughCandy) await EvolveAllPokemonWithEnoughCandy(_clientSettings.PokemonsToEvolve); if (_clientSettings.TransferDuplicatePokemon) await TransferDuplicatePokemon(); await RecycleItems(); await ExecuteFarmingPokestopsAndPokemons(); /* * Example calls below * var profile = await _client.GetProfile(); var settings = await _client.GetSettings(); var mapObjects = await _client.GetMapObjects(); var inventory = await _client.GetInventory(); var pokemons = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon).Where(p => p != null && p?.PokemonId > 0); */ } catch (AccessTokenExpiredException) { throw; } catch (Exception ex) { Logger.Write($"Exception: {ex}", LogLevel.Error); } await Task.Delay(10000); } }
private void WriteConnectLogs(GetPlayerResponse profile) { ColoredConsoleWrite(Color.Yellow, "----------------------------"); /*// dont actually want to display info but keeping here incase people want to \O_O/ * if (ClientSettings.AuthType == AuthType.Ptc) { ColoredConsoleWrite(Color.Cyan, "Account: " + ClientSettings.PtcUsername); ColoredConsoleWrite(Color.Cyan, "Password: "******"\n"); } else { ColoredConsoleWrite(Color.Cyan, "Email: " + ClientSettings.Email); ColoredConsoleWrite(Color.Cyan, "Password: "******"\n"); }*/ ColoredConsoleWrite(Color.DarkGray, "Name: " + profile.Profile.Username); ColoredConsoleWrite(Color.DarkGray, "Team: " + profile.Profile.Team); if (profile.Profile.Currency.ToArray()[0].Amount > 0) // If player has any pokecoins it will show how many they have. ColoredConsoleWrite(Color.DarkGray, "Pokecoins: " + profile.Profile.Currency.ToArray()[0].Amount); ColoredConsoleWrite(Color.DarkGray, "Stardust: " + profile.Profile.Currency.ToArray()[1].Amount + "\n"); ColoredConsoleWrite(Color.DarkGray, "Latitude: " + ClientSettings.DefaultLatitude); ColoredConsoleWrite(Color.DarkGray, "Longitude: " + ClientSettings.DefaultLongitude); try { ColoredConsoleWrite(Color.DarkGray, "Country: " + CallAPI("country", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude)); ColoredConsoleWrite(Color.DarkGray, "Area: " + CallAPI("place", ClientSettings.DefaultLatitude, ClientSettings.DefaultLongitude)); } catch (Exception) { ColoredConsoleWrite(Color.DarkGray, "Unable to get Country/Place"); } ColoredConsoleWrite(Color.Yellow, "----------------------------"); }
public void SetUsername(GetPlayerResponse profile) { PlayerName = profile.Profile.Username ?? ""; }
public async Task PostLoginExecute() { Logger.Write($"Client logged in", LogLevel.Info); while (true) { if (!IsInitialized) { await Inventory.getCachedInventory(_client); _playerProfile = await _client.GetProfile(); var PlayerName = Statistics.GetUsername(_client, _playerProfile); _stats.UpdateConsoleTitle(_client, _inventory); var _currentLevelInfos = await Statistics._getcurrentLevelInfos(_inventory); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); if (_clientSettings.AuthType == AuthType.Ptc) Logger.Write($"PTC Account: {PlayerName}\n", LogLevel.None, ConsoleColor.Cyan); Logger.Write($"Latitude: {_clientSettings.DefaultLatitude}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Longitude: {_clientSettings.DefaultLongitude}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); Logger.Write("Your Account:\n"); Logger.Write($"Name: {PlayerName}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Team: {_playerProfile.Profile.Team}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Level: {_currentLevelInfos}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Stardust: {_playerProfile.Profile.Currency.ToArray()[1].Amount}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); await DisplayHighests(); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); var PokemonsNotToTransfer = _clientSettings.PokemonsNotToTransfer; var PokemonsNotToCatch = _clientSettings.PokemonsNotToCatch; var PokemonsToEvolve = _clientSettings.PokemonsToEvolve; if (_clientSettings.EvolvePokemon || _clientSettings.EvolveOnlyPokemonAboveIV) await EvolvePokemon(_clientSettings.PokemonsToEvolve); if (_clientSettings.TransferPokemon) await TransferPokemon(); await _inventory.ExportPokemonToCSV(_playerProfile.Profile); await RecycleItems(); } IsInitialized = true; await ExecuteFarmingPokestopsAndPokemons(_clientSettings.UseGPXPathing); /* * Example calls below * var profile = await _client.GetProfile(); var settings = await _client.GetSettings(); var mapObjects = await _client.GetMapObjects(); var inventory = await _client.GetInventory(); var pokemons = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.Pokemon).Where(p => p != null && p?.PokemonId > 0); */ await Task.Delay(10000); } }
private async void Execute() { EnabledButton(false, "Reloading Pokemon list."); client = new Client(ClientSettings); try { switch (ClientSettings.AuthType) { case AuthType.Ptc: await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword); break; case AuthType.Google: await client.DoGoogleLogin(); break; } await client.SetServer(); profile = await client.GetProfile(); inventory = await client.GetInventory(); pokemons = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.Pokemon) .Where(p => p != null && p?.PokemonId > 0) .OrderByDescending(key => key.Cp); var families = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.PokemonFamily) .Where(p => p != null && (int)p?.FamilyId > 0) .OrderByDescending(p => (int)p.FamilyId); var imageSize = 50; var imageList = new ImageList { ImageSize = new Size(imageSize, imageSize) }; PokemonListView.ShowItemToolTips = true; PokemonListView.SmallImageList = imageList; var templates = await client.GetItemTemplates(); var myPokemonSettings = templates.ItemTemplates.Select(i => i.PokemonSettings).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonSettings = myPokemonSettings.ToList(); var myPokemonFamilies = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PokemonFamily).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonFamilies = myPokemonFamilies.ToArray(); PokemonListView.DoubleBuffered(true); PokemonListView.View = View.Details; ColumnHeader columnheader; columnheader = new ColumnHeader(); columnheader.Text = "Name"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "CP"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "IV A-D-S"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "LVL"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Evolvable?"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Height"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Weight"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "HP"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "Attack"; PokemonListView.Columns.Add(columnheader); columnheader = new ColumnHeader(); columnheader.Text = "SpecialAttack"; PokemonListView.Columns.Add(columnheader); foreach (var pokemon in pokemons) { Bitmap pokemonImage = null; await Task.Run(() => { pokemonImage = GetPokemonImage((int)pokemon.PokemonId); }); imageList.Images.Add(pokemon.PokemonId.ToString(), pokemonImage); PokemonListView.LargeImageList = imageList; var listViewItem = new ListViewItem(); listViewItem.Tag = pokemon; var currentCandy = families .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId) .Select(f => f.Candy) .First(); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Cp)); listViewItem.SubItems.Add(string.Format("{0}% {1}-{2}-{3}", Math.Round(pokemon.CalculateIV()), pokemon.IndividualAttack, pokemon.IndividualDefense, pokemon.IndividualStamina)); listViewItem.SubItems.Add(string.Format("{0}", PokemonInfo.GetLevel(pokemon))); listViewItem.ImageKey = pokemon.PokemonId.ToString(); listViewItem.Text = string.Format((pokemon.Favorite == 1)? "{0} ★" : "{0}", pokemon.PokemonId); listViewItem.ToolTipText = new DateTime((long)pokemon.CreationTimeMs * 10000).AddYears(1970).ToString("dd/MM/yyyy HH:mm:ss"); if (pokemon.Nickname!="") listViewItem.ToolTipText += "\nNickname: " + pokemon.Nickname; var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.PokemonId); var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId); if (settings.EvolutionIds.Count > 0 && familyCandy.Candy >= settings.CandyToEvolve) { listViewItem.SubItems.Add("Y (" + familyCandy.Candy + "/" + settings.CandyToEvolve + ")"); listViewItem.Checked = true; } else { if (settings.EvolutionIds.Count > 0) listViewItem.SubItems.Add("N (" + familyCandy.Candy + "/" + settings.CandyToEvolve + ")"); else listViewItem.SubItems.Add("N (" + familyCandy.Candy + "/Max)"); } listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.HeightM, 2))); listViewItem.SubItems.Add(string.Format("{0}", Math.Round(pokemon.WeightKg, 2))); listViewItem.SubItems.Add(string.Format("{0}/{1}", pokemon.Stamina, pokemon.StaminaMax)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move1)); listViewItem.SubItems.Add(string.Format("{0}", pokemon.Move2)); PokemonListView.Items.Add(listViewItem); } PokemonListView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); Text = "Pokemon List | User: "******" | Pokemons: " + pokemons.Count() + "/" + profile.Profile.PokeStorage; EnabledButton(true); statusTexbox.Text = string.Empty; } catch (Exception e) { Logger.ColoredConsoleWrite(ConsoleColor.Red, "Error reloading Pokemon list: " + e.Message); await Task.Delay(500); // Lets the API make a little pause, so we dont get blocked Execute(); } }
private async Task LoginPtc(string username, string password) { try { // Login Method _loginMethod = AuthType.Ptc; _username = username; _password = password; // Creating the Settings Logger.Write("Adjusting the Settings."); UserSettings.Default.AuthType = AuthType.Ptc.ToString(); UserSettings.Default.PtcUsername = username; UserSettings.Default.PtcPassword = password; _settings = new Settings(); // Begin Login Logger.Write("Trying to Login with PTC Credentials..."); Client client = new Client(_settings); await client.DoPtcLogin(_settings.PtcUsername, _settings.PtcPassword); await client.SetServer(); // Server Ready Logger.Write("Connected! Server is Ready."); _client = client; Logger.Write("Attempting to Retrieve Inventory and Player Profile..."); _inventory = new Inventory(client); _profile = await client.GetProfile(); EnableButtons(); _loginSuccess = true; } catch(Exception ex) { // Error Logging ErrorReportCreator.Create("PTCLoginError", "Unable to Login with PTC", ex); Logger.Write("Unable to Connect using the PTC Credentials."); MessageBox.Show(@"Unable to Authenticate with Login Server.", @"Login Problem"); Application.Exit(); } }
public static string GetUsername(Client client, GetPlayerResponse profile) { return PlayerName = client.Settings.AuthType == AuthType.Ptc ? client.Settings.PtcUsername : profile.Profile.Username; }
private async Task LoginGoogle(string username, string password) { try { // Login Method _loginMethod = AuthType.Google; _username = username; _password = password; // Creating the Settings Logger.Write("Adjusting the Settings."); UserSettings.Default.AuthType = AuthType.Google.ToString(); _settings = new Settings(); // Begin Login Logger.Write("Trying to Login with Google Token..."); Client client = new Client(_settings); client.DoGoogleLogin(username, password); await client.SetServer(); // Server Ready Logger.Write("Connected! Server is Ready."); _client = client; Logger.Write("Attempting to Retrieve Inventory and Player Profile..."); _inventory = new Inventory(client); _profile = await client.GetProfile(); EnableButtons(); _loginSuccess = true; } catch (GoogleException ex) { if(ex.Message.Contains("NeedsBrowser")) { StringBuilder sb = new StringBuilder(); sb.AppendLine("It seems you have Google 2 Factor Authentication enabled."); sb.AppendLine("In order to enable this bot to access your Google Account you need to create an App Password and use that one instead of your Google Password."); sb.AppendLine(); sb.AppendLine("Please go to: https://security.google.com/settings/security/apppasswords"); sb.AppendLine("In 'Select App' select 'Other' and 'on my' select 'Windows Computer'."); sb.AppendLine(); sb.AppendLine("This will generate a random password use that password login to the bot."); MessageBox.Show(sb.ToString(), "Google 2 Factor Authentication"); Application.Exit(); } if(ex.Message.Contains("BadAuth")) { MessageBox.Show("Your Google Credentials are incorrect.", "Google Login"); Application.Exit(); } } catch(Exception ex) { // Error Logging ErrorReportCreator.Create("GoogleLoginError", "Unable to Login with Google", ex); Logger.Write("Unable to Connect using the Google Token."); MessageBox.Show(@"Unable to Authenticate with Login Server.", @"Login Problem"); Application.Exit(); } }
public async Task<GetPlayerResponse> GetCachedProfile(bool request = false) { var now = DateTime.Now; var ss = new SemaphoreSlim(10); if (_lastRefresh.AddSeconds(30).Ticks > now.Ticks && request == false) { return _cachedProfile; } await ss.WaitAsync(); try { _lastRefresh = now; try { _cachedProfile = await GetProfile(); } catch { } } finally { ss.Release(); } return _cachedProfile; }
public async void GetPlayerData() { _player = await _client.Player.GetPlayer(); }
private async void Execute() { EnabledButton(false); textBox1.Text = "Reloading Pokemon list."; client = new Client(ClientSettings); try { switch (ClientSettings.AuthType) { case AuthType.Ptc: await client.DoPtcLogin(ClientSettings.PtcUsername, ClientSettings.PtcPassword); break; case AuthType.Google: await client.DoGoogleLogin(); break; } await client.SetServer(); profile = await client.GetProfile(); inventory = await client.GetInventory(); pokemons = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.Pokemon) .Where(p => p != null && p?.PokemonId > 0) .OrderByDescending(key => key.Cp); var families = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData?.PokemonFamily) .Where(p => p != null && (int)p?.FamilyId > 0) .OrderByDescending(p => (int)p.FamilyId); var imageSize = 50; var imageList = new ImageList { ImageSize = new Size(imageSize, imageSize) }; listView1.ShowItemToolTips = true; var templates = await client.GetItemTemplates(); var myPokemonSettings = templates.ItemTemplates.Select(i => i.PokemonSettings).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonSettings = myPokemonSettings.ToList(); var myPokemonFamilies = inventory.InventoryDelta.InventoryItems.Select(i => i.InventoryItemData?.PokemonFamily).Where(p => p != null && p?.FamilyId != PokemonFamilyId.FamilyUnset); var pokemonFamilies = myPokemonFamilies.ToArray(); listView1.DoubleBuffered(true); foreach (var pokemon in pokemons) { Bitmap pokemonImage = null; await Task.Run(() => { pokemonImage = GetPokemonImage((int)pokemon.PokemonId); }); imageList.Images.Add(pokemon.PokemonId.ToString(), pokemonImage); listView1.LargeImageList = imageList; var listViewItem = new ListViewItem(); listViewItem.Tag = pokemon; var currentCandy = families .Where(i => (int)i.FamilyId <= (int)pokemon.PokemonId) .Select(f => f.Candy) .First(); var currIv = Math.Round(Perfect(pokemon)); //listViewItem.SubItems.Add(); listViewItem.ImageKey = pokemon.PokemonId.ToString(); var pokemonId2 = pokemon.PokemonId; var pokemonName = pokemon.Id; listViewItem.Text = string.Format("{0}\n{1} CP", pokemon.PokemonId, pokemon.Cp); listViewItem.ToolTipText = currentCandy + " Candy\n" + currIv + "% IV"; var settings = pokemonSettings.Single(x => x.PokemonId == pokemon.PokemonId); var familyCandy = pokemonFamilies.Single(x => settings.FamilyId == x.FamilyId); if (settings.EvolutionIds.Count > 0 && familyCandy.Candy > settings.CandyToEvolve) listViewItem.Checked = true; listView1.Items.Add(listViewItem); } Text = "Pokemon List | User: "******" | Pokemons: " + pokemons.Count() + "/" + profile.Profile.PokeStorage; EnabledButton(true); textBox1.Text = string.Empty; } catch (TaskCanceledException e) { textBox1.Text = e.Message; Execute(); } catch (UriFormatException e) { textBox1.Text = e.Message; Execute(); } catch (ArgumentOutOfRangeException e) { textBox1.Text = e.Message; Execute(); } catch (ArgumentNullException e) { textBox1.Text = e.Message; Execute(); } catch (NullReferenceException e) { textBox1.Text = e.Message; Execute(); } catch (Exception e) { textBox1.Text = e.Message; Execute(); } }