//https://github.com/AeonLucid/POGOProtos/blob/master/src/POGOProtos/Networking/Requests/RequestType.proto#L87 public async Task <GetGymBadgeDetailsResponse> GetGymBadgeDetails(string fortId, double latitude, double longitude) { var setFavoritePokemonRequest = new Request { RequestType = RequestType.GetGymBadgeDetails, RequestMessage = ((IMessage) new GetGymBadgeDetailsMessage { FortId = fortId, Latitude = latitude, Longitude = longitude }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(setFavoritePokemonRequest, Client)).ConfigureAwait(false); Tuple <GetGymBadgeDetailsResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, GetGymBadgeDetailsResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public async Task <GetInventoryResponse> RefreshCachedInventory(int retries = 0) { if (retries > 3) { return(null); } var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); await ss.WaitAsync(); try { _lastRefresh = now; _cachedInventory = await _client.Inventory.GetInventory(); return(_cachedInventory); } catch (NullReferenceException) { ss.Release(); DelayingUtils.Delay(3000, 3000); return(await RefreshCachedInventory(++retries)); } finally { ss.Release(); } }
public static GetInventoryResponse Unmarshall(UnmarshallerContext context) { GetInventoryResponse getInventoryResponse = new GetInventoryResponse(); getInventoryResponse.HttpResponse = context.HttpResponse; getInventoryResponse.Success = context.BooleanValue("GetInventory.Success"); GetInventoryResponse.GetInventory_Data data = new GetInventoryResponse.GetInventory_Data(); List <GetInventoryResponse.GetInventory_Data.GetInventory_ResultObjectItem> data_resultObject = new List <GetInventoryResponse.GetInventory_Data.GetInventory_ResultObjectItem>(); for (int i = 0; i < context.Length("GetInventory.Data.ResultObject.Length"); i++) { GetInventoryResponse.GetInventory_Data.GetInventory_ResultObjectItem resultObjectItem = new GetInventoryResponse.GetInventory_Data.GetInventory_ResultObjectItem(); resultObjectItem.BuyerId = context.StringValue("GetInventory.Data.ResultObject[" + i + "].BuyerId"); resultObjectItem.CommodityCode = context.StringValue("GetInventory.Data.ResultObject[" + i + "].CommodityCode"); resultObjectItem.CurrentInventory = context.StringValue("GetInventory.Data.ResultObject[" + i + "].CurrentInventory"); resultObjectItem.ValidEndTime = context.StringValue("GetInventory.Data.ResultObject[" + i + "].ValidEndTime"); resultObjectItem.ValidStartTime = context.StringValue("GetInventory.Data.ResultObject[" + i + "].ValidStartTime"); resultObjectItem.InstanceId = context.StringValue("GetInventory.Data.ResultObject[" + i + "].InstanceId"); resultObjectItem.InventoryId = context.StringValue("GetInventory.Data.ResultObject[" + i + "].InventoryId"); data_resultObject.Add(resultObjectItem); } data.ResultObject = data_resultObject; getInventoryResponse.Data = data; return(getInventoryResponse); }
public async Task <UseItemMoveRerollResponse> UseItemMoveReroll(ItemId itemId, ulong pokemonId) { var UseItemMoveRerollRequest = new Request { RequestType = RequestType.UseItemMoveReroll, RequestMessage = ((IMessage) new UseItemMoveRerollMessage { ItemId = itemId, PokemonId = pokemonId }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(UseItemMoveRerollRequest, Client)).ConfigureAwait(false); Tuple <UseItemMoveRerollResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, UseItemMoveRerollResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public async Task <RecycleInventoryItemResponse> RecycleItem(ItemId itemId, int amount) { var recycleItemRequest = new Request { RequestType = RequestType.RecycleInventoryItem, RequestMessage = ((IMessage) new RecycleInventoryItemMessage { ItemId = itemId, Count = amount }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(recycleItemRequest, Client)).ConfigureAwait(false); Tuple <RecycleInventoryItemResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, RecycleInventoryItemResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public async Task <GetDownloadUrlsResponse> GetDownloadUrls(IEnumerable <string> assetIds) { var getDownloadUrlsRequest = new Request { RequestType = RequestType.GetDownloadUrls, RequestMessage = new GetDownloadUrlsMessage { AssetId = { assetIds } }.ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(getDownloadUrlsRequest, Client)).ConfigureAwait(false); Tuple <GetDownloadUrlsResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, GetDownloadUrlsResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public List <InventoryDTO> GetInventoryByType(long inventorytype) { GetInventoryResponse response = new GetInventoryResponse(new List <InventoryDTO>()); try { HttpClient client = new HttpClient(); client.BaseAddress = new Uri(((App)App.Current).LAN_Address); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("plain/text")); client.DefaultRequestHeaders.Add("EO-Header", User + " : " + Pwd); HttpResponseMessage httpResponse = client.GetAsync("api/Login/GetInventory?inventoryType=" + inventorytype.ToString()).Result; if (httpResponse.IsSuccessStatusCode) { string strData = httpResponse.Content.ReadAsStringAsync().Result; response = JsonConvert.DeserializeObject <GetInventoryResponse>(strData); } else { MessageBox.Show("There was an error retreiving inventory"); } } catch (Exception ex) { Exception ex2 = new Exception("Admin - GetInventoryByType", ex); ((App)App.Current).LogError(ex2.Message, String.Empty); } return(response.InventoryList); }
public async Task <GetIncensePokemonResponse> GetIncensePokemons() { var getIncensePokemonsRequest = new Request { RequestType = RequestType.GetIncensePokemon, RequestMessage = ((IMessage) new GetIncensePokemonMessage { PlayerLatitude = Client.CurrentLatitude, PlayerLongitude = Client.CurrentLongitude }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(getIncensePokemonsRequest, Client)).ConfigureAwait(false); Tuple <GetIncensePokemonResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, GetIncensePokemonResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public static void Parse(Client client, RequestType requestType, ByteString data) { try { switch (requestType) { case RequestType.GetInventory: var getInventoryResponse = new GetInventoryResponse(); getInventoryResponse.MergeFrom(data); ProcessGetInventoryResponse(client, getInventoryResponse); break; case RequestType.DownloadSettings: //TODO Update settings //api.getSettings().updateSettings(DownloadSettingsResponse.parseFrom(data)); // Update settings hash var downloadSettingsResponse = new DownloadSettingsResponse(); downloadSettingsResponse.MergeFrom(data); client.SettingsHash = downloadSettingsResponse.Hash; break; } } catch (InvalidProtocolBufferException e) { throw e; } }
public async Task <VerifyChallengeResponse> VerifyChallenge(string token) { var verifyChallengeRequest = new Request { RequestType = RequestType.VerifyChallenge, RequestMessage = new VerifyChallengeMessage { Token = token }.ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(verifyChallengeRequest, Client)).ConfigureAwait(false); Tuple <VerifyChallengeResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, VerifyChallengeResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); // This is commented out because the assumption is that you are trying to verify the captcha, // so don't throw any exceptions. // 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); }
public static async Task <GetInventoryResponse> getCachedInventory(Client _client, bool request = false) { var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); if (_lastRefresh.AddSeconds(30).Ticks > now.Ticks && request == false) { return(_cachedInventory); } await ss.WaitAsync(); try { _lastRefresh = now; try { _cachedInventory = await _client.GetInventory(); } catch { } return(_cachedInventory); } finally { ss.Release(); } }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { GetInventoryResponse response = new GetInventoryResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("Entities", targetDepth)) { var unmarshaller = new ListUnmarshaller <InventoryResultEntity, InventoryResultEntityUnmarshaller>(InventoryResultEntityUnmarshaller.Instance); response.Entities = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("NextToken", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.NextToken = unmarshaller.Unmarshall(context); continue; } } return(response); }
/// <summary> /// Send a parameter TRUE if you want to force real time invetory check /// otherwise it will be checked if _lastInventoryRequest was done more than /// _minSecondsBetweenInventoryCalls /// </summary> /// <param name="forceRequest"></param> /// <returns></returns> public async Task <GetInventoryResponse> GetInventory(bool forceRequest = false) { if (forceRequest) { // If forceRequest is TRUE we make the call _lastInventoryRequest = DateTime.UtcNow; _cachedInventory = await PostProtoPayload <Request, GetInventoryResponse>(RequestType.GetInventory, new GetInventoryMessage()).ConfigureAwait(false); return(_cachedInventory); } else { if (_lastInventoryRequest.AddSeconds(_minSecondsBetweenInventoryCalls).Ticks > DateTime.UtcNow.Ticks) { // If forceRequest is default/FALSE and last request made less than _minSecondsBetweenInventoryCalls seconds ago, we return _cachedInventory return(_cachedInventory); } else { // If forceRequest is default/FALSE and last request made more than _minSecondsBetweenInventoryCalls seconds ago, // we make the call and also update _cachedInventory _lastInventoryRequest = DateTime.UtcNow; _cachedInventory = await PostProtoPayload <Request, GetInventoryResponse>(RequestType.GetInventory, new GetInventoryMessage()).ConfigureAwait(false); return(_cachedInventory); } } }
public async Task <UseItemEncounterResponse> UseItemEncounter(ulong encounterId, ItemId itemId, string spawnPointId) { var useCaptureItemRequest = new Request { RequestType = RequestType.UseItemEncounter, RequestMessage = ((IMessage) new UseItemEncounterMessage { EncounterId = encounterId, Item = itemId, SpawnPointGuid = spawnPointId }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(useCaptureItemRequest, Client)).ConfigureAwait(false); Tuple <UseItemEncounterResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, UseItemEncounterResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public async Task <EncounterTutorialCompleteResponse> EncounterTutorialComplete(PokemonId pokemonId) { var encounterTutorialCompleteRequest = new Request { RequestType = RequestType.EncounterTutorialComplete, RequestMessage = ((IMessage) new EncounterTutorialCompleteMessage { PokemonId = pokemonId }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(encounterTutorialCompleteRequest, Client)).ConfigureAwait(false); Tuple <EncounterTutorialCompleteResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, EncounterTutorialCompleteResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public async Task <ClaimCodenameResponse> ClaimCodename(string codename) { var claimCodenameRequest = new Request { RequestType = RequestType.ClaimCodename, RequestMessage = ((IMessage) new ClaimCodenameMessage { Codename = codename }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(claimCodenameRequest, Client)).ConfigureAwait(false); Tuple <ClaimCodenameResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, ClaimCodenameResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public async Task <IncenseEncounterResponse> EncounterIncensePokemon(ulong encounterId, string encounterLocation) { var encounterIncensePokemonRequest = new Request { RequestType = RequestType.IncenseEncounter, RequestMessage = ((IMessage) new IncenseEncounterMessage { EncounterId = encounterId, EncounterLocation = encounterLocation }).ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(encounterIncensePokemonRequest, Client)).ConfigureAwait(false); Tuple <IncenseEncounterResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, IncenseEncounterResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public int GetEggsCount(GetInventoryResponse inventory) { var p = GetEggs(inventory); var i = p.Count(); return(i); }
public async Task <LevelUpRewardsResponse> GetLevelUpRewards(int level) { var levelUpRewardsRequest = new Request { RequestType = RequestType.LevelUpRewards, RequestMessage = new LevelUpRewardsMessage { Level = level }.ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(levelUpRewardsRequest, Client)).ConfigureAwait(false); Tuple <LevelUpRewardsResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, LevelUpRewardsResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
//TODO: revise https://github.com/AeonLucid/POGOProtos/blob/master/src/POGOProtos/Networking/Requests/RequestType.proto#L46 public async Task <CollectDailyDefenderBonusResponse> CollectDailyDefenderBonus() { var collectDailyDefenderBonusRequest = new Request { RequestType = RequestType.CollectDailyDefenderBonus, RequestMessage = new CollectDailyDefenderBonusMessage().ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(collectDailyDefenderBonusRequest, Client)).ConfigureAwait(false); Tuple <CollectDailyDefenderBonusResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, CollectDailyDefenderBonusResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public async Task <EquipBadgeResponse> EquipBadge(BadgeType type) { var equipBadgeRequest = new Request { RequestType = RequestType.EquipBadge, RequestMessage = new EquipBadgeMessage { BadgeType = type }.ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(equipBadgeRequest, Client)).ConfigureAwait(false); Tuple <EquipBadgeResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, EquipBadgeResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public static async Task <GetInventoryResponse> GetCachedInventory(bool request = false) { var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); if (LastRefresh.AddSeconds(30).Ticks > now.Ticks && request == false) { return(CachedInventory); } await ss.WaitAsync(); try { LastRefresh = now; //_cachedInventory = await _client.GetInventory(); try { CachedInventory = await Logic._client.Inventory.GetInventory(); } catch { // ignored } return(CachedInventory); } finally { ss.Release(); } }
public async Task <GetPlayerProfileResponse> GetPlayerProfile() { var getPlayerProfileRequest = new Request { RequestType = RequestType.GetPlayerProfile, RequestMessage = new GetPlayerProfileMessage { PlayerName = PlayerData.Username }.ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(getPlayerProfileRequest, Client)).ConfigureAwait(false); Tuple <GetPlayerProfileResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, GetPlayerProfileResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public static async Task <GetInventoryResponse> GetCachedInventory(PokeRoadieClient _client, bool request = false) { var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); if (!IsDirty && _lastRefresh > now && request == false) { return(_cachedInventory); } await ss.WaitAsync(); try { _lastRefresh = now.AddSeconds(30); //_cachedInventory = await Context.Client.GetInventory(); try { _cachedInventory = await _client.Inventory.GetInventory(); IsDirty = false; } catch { // ignored } return(_cachedInventory); } finally { ss.Release(); } }
public async Task <CheckChallengeResponse> CheckChallenge() { var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.GetCommonRequests(Client)).ConfigureAwait(false); Tuple <CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); // This is commented out because the assumption is that you are calling CheckChallenge() directly // to get a new challenge url. So don't throw the exception below. // CheckChallengeResponse checkChallengeResponse = response.Item1; // CommonRequest.ProcessCheckChallengeResponse(Client, checkChallengeResponse); GetInventoryResponse getInventoryResponse = response.Item3; CommonRequest.ProcessGetInventoryResponse(Client, getInventoryResponse); DownloadSettingsResponse downloadSettingsResponse = response.Item5; CommonRequest.ProcessDownloadSettingsResponse(Client, downloadSettingsResponse); return(response.Item1); }
public async Task <GetInventoryResponse> RefreshCachedInventory() { var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); await ss.WaitAsync(); try { for (int i = 0; i < 3; i++) { _lastRefresh = now; _cachedInventory = await _client.Inventory.GetInventory(); if (_cachedInventory != null && _cachedInventory.InventoryDelta.InventoryItems.Count > 0) { break; } } return(_cachedInventory); } finally { ss.Release(); } }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonSimpleSystemsManagementConfig config = new AmazonSimpleSystemsManagementConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonSimpleSystemsManagementClient client = new AmazonSimpleSystemsManagementClient(creds, config); GetInventoryResponse resp = new GetInventoryResponse(); do { GetInventoryRequest req = new GetInventoryRequest { NextToken = resp.NextToken , MaxResults = maxItems }; resp = client.GetInventory(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.Entities) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextToken)); }
public async Task <SetBuddyPokemonResponse> SelectBuddy(ulong pokemonId) { var selectBuddyRequest = new Request { RequestType = RequestType.SetBuddyPokemon, RequestMessage = new SetBuddyPokemonMessage { PokemonId = pokemonId }.ToByteString() }; var request = await GetRequestBuilder().GetRequestEnvelope(CommonRequest.FillRequest(selectBuddyRequest, Client)).ConfigureAwait(false); Tuple <SetBuddyPokemonResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse> response = await PostProtoPayload <Request, SetBuddyPokemonResponse, CheckChallengeResponse, GetHatchedEggsResponse, GetInventoryResponse, CheckAwardedBadgesResponse, DownloadSettingsResponse, GetBuddyWalkedResponse>(request).ConfigureAwait(false); 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); }
public static void ProcessGetInventoryResponse(Client client, GetInventoryResponse getInventoryResponse) { if (getInventoryResponse == null) { return; } if (!getInventoryResponse.Success) { return; } // If there is not inventory delta if (getInventoryResponse.InventoryDelta == null) { return; } if (client.Inventory.GetInventory() == null) { client.Inventory.SetInventory(getInventoryResponse); return; } // If was updated yet. if (getInventoryResponse.InventoryDelta.NewTimestampMs <= client.Inventory.GetInventory().InventoryDelta.NewTimestampMs) { return; } client.Inventory.GetInventory().InventoryDelta.NewTimestampMs = getInventoryResponse.InventoryDelta.NewTimestampMs; client.Inventory.UpdateInventoryItems(getInventoryResponse.InventoryDelta); }
public IEnumerable <EggIncubator> GetEggIncubators(GetInventoryResponse inventory) { return (inventory.InventoryDelta.InventoryItems .Where(x => x.InventoryItemData.EggIncubators != null) .SelectMany(i => i.InventoryItemData.EggIncubators.EggIncubator) .Where(i => i != null)); }
private async Task<GetInventoryResponse> GetCachedInventory() { var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); if (_lastRefresh.AddSeconds(30).Ticks > now.Ticks) { return _cachedInventory; } await ss.WaitAsync(); try { _lastRefresh = now; _cachedInventory = await _client.GetInventory(); return _cachedInventory; } finally { ss.Release(); } }
public async Task<GetInventoryResponse> RefreshCachedInventory() { var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); await ss.WaitAsync(); try { _lastRefresh = now; _cachedInventory = await _client.Inventory.GetInventory(); return _cachedInventory; } finally { ss.Release(); } }
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(); } }
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(); } }
public async Task<GetInventoryResponse> RefreshCachedInventory(int retries=0) { if (retries > 3) return null; var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); await ss.WaitAsync(); try { _lastRefresh = now; _cachedInventory = await _client.Inventory.GetInventory(); return _cachedInventory; } catch (NullReferenceException) { ss.Release(); DelayingUtils.Delay(3000, 3000); return await RefreshCachedInventory(++retries); } finally { ss.Release(); } }
public static async Task<GetInventoryResponse> getCachedInventory(Client _client, bool request = false) { var now = DateTime.UtcNow; var ss = new SemaphoreSlim(10); if (_lastRefresh.AddSeconds(30).Ticks > now.Ticks && request == false) { return _cachedInventory; } await ss.WaitAsync(); try { _lastRefresh = now; try { _cachedInventory = await _client.GetInventory(); } catch { } return _cachedInventory; } finally { ss.Release(); } }
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(); } }