private async Task TransferDuplicatePokemon(bool keepPokemonsThatCanEvolve = false) { if (_clientSettings.TransferDoublePokemons) { var duplicatePokemons = await _inventory.GetDuplicatePokemonToTransfer(keepPokemonsThatCanEvolve); foreach (var duplicatePokemon in duplicatePokemons) { if (!_clientSettings.pokemonsToHold.Contains(duplicatePokemon.PokemonId)) { if (duplicatePokemon.Cp > _clientSettings.DontTransferWithCPOver) { continue; } var bestPokemonOfType = await _inventory.GetHighestCPofType(duplicatePokemon); var bestPokemonsCPOfType = await _inventory.GetHighestCPofType2(duplicatePokemon); var bestPokemonsIVOfType = await _inventory.GetHighestIVofType(duplicatePokemon); var transfer = await _client.TransferPokemon(duplicatePokemon.Id); Logger.ColoredConsoleWrite(ConsoleColor.Yellow, $"Transfer {StringUtils.getPokemonNameByLanguage(_clientSettings, duplicatePokemon.PokemonId)} CP {duplicatePokemon.Cp} IV {Math.Round(duplicatePokemon.CalculateIV())}% (Best: {bestPokemonsCPOfType.First().Cp} CP, IV {Math.Round(bestPokemonsIVOfType.First().CalculateIV())}%)", LogLevel.Info); TelegramUtil.getInstance().sendInformationText(TelegramUtil.TelegramUtilInformationTopics.Transfer, StringUtils.getPokemonNameByLanguage(_clientSettings, duplicatePokemon.PokemonId), duplicatePokemon.Cp, Math.Round(duplicatePokemon.CalculateIV()), bestPokemonOfType); await RandomHelper.RandomDelay(500, 700); } } } }
public async Task Execute() { Logger.ColoredConsoleWrite(ConsoleColor.Red, "This bot is absolutely free and open-source!"); Logger.ColoredConsoleWrite(ConsoleColor.Red, "If you've paid for it. Request a chargeback immediately!"); Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Starting Execute on login server: {_clientSettings.AuthType}", LogLevel.Info); _client.CurrentAltitude = _client.Settings.DefaultAltitude; _client.CurrentLongitude = _client.Settings.DefaultLongitude; _client.CurrentLatitude = _client.Settings.DefaultLatitude; while (true) { try { await _client.Login.DoLogin(); if (!string.IsNullOrEmpty(_clientSettings.TelegramAPIToken) && !string.IsNullOrEmpty(_clientSettings.TelegramName)) { try { _telegram = new TelegramUtil(_client, new Telegram.Bot.TelegramBotClient(_clientSettings.TelegramAPIToken), _clientSettings, _client.Inventory); Logger.ColoredConsoleWrite(ConsoleColor.Green, "To activate informations with Telegram, write the bot a message for more informations"); var me = await _telegram.getClient().GetMeAsync(); _telegram.getClient().OnCallbackQuery += _telegram.BotOnCallbackQueryReceived; _telegram.getClient().OnMessage += _telegram.BotOnMessageReceived; _telegram.getClient().OnMessageEdited += _telegram.BotOnMessageReceived; Logger.ColoredConsoleWrite(ConsoleColor.Green, "Telegram Name: " + me.Username); _telegram.getClient().StartReceiving(); } catch (Exception) { } } await PostLoginExecute(); } catch (Exception ex) { Logger.Error($"Error: " + ex.Source); Logger.Error($"{ex}"); Logger.ColoredConsoleWrite(ConsoleColor.Green, "Trying to Restart."); try { _telegram.getClient().StopReceiving(); } catch (Exception) { } } Logger.ColoredConsoleWrite(ConsoleColor.Red, "Restarting in 10 Seconds."); await Task.Delay(10000); } }
private async Task EvolveAllPokemonWithEnoughCandy(IEnumerable <PokemonId> filter = null) { var pokemonToEvolve = await _inventory.GetPokemonToEvolve(filter); if (pokemonToEvolve.Count() != 0) { if (_clientSettings.UseLuckyEgg) { await _inventory.UseLuckyEgg(_client); } } foreach (var pokemon in pokemonToEvolve) { if (!_clientSettings.pokemonsToEvolve.Contains(pokemon.PokemonId)) { continue; } count++; if (count == 6) { count = 0; await StatsLog(_client); } var evolvePokemonOutProto = await _client.EvolvePokemon((ulong)pokemon.Id); if (evolvePokemonOutProto.Result == EvolvePokemonOut.Types.EvolvePokemonStatus.PokemonEvolvedSuccess) { Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Evolved {StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId)} CP {pokemon.Cp} {Math.Round(pokemon.CalculateIV())}% to {StringUtils.getPokemonNameByLanguage(_clientSettings, evolvePokemonOutProto.EvolvedPokemon.PokemonType)} CP: {evolvePokemonOutProto.EvolvedPokemon.Cp} for {evolvePokemonOutProto.ExpAwarded.ToString("N0")}xp", LogLevel.Info); _botStats.AddExperience(evolvePokemonOutProto.ExpAwarded); try { TelegramUtil.getInstance().sendInformationText(TelegramUtil.TelegramUtilInformationTopics.Evolve, StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId), pokemon.Cp, Math.Round(pokemon.CalculateIV()), StringUtils.getPokemonNameByLanguage(_clientSettings, evolvePokemonOutProto.EvolvedPokemon.PokemonType), evolvePokemonOutProto.EvolvedPokemon.Cp, evolvePokemonOutProto.ExpAwarded.ToString("N0")); } catch (Exception) { } } else { if (evolvePokemonOutProto.Result != EvolvePokemonOut.Types.EvolvePokemonStatus.FailedPokemonMissing) { Logger.ColoredConsoleWrite(ConsoleColor.Red, $"Failed to evolve {pokemon.PokemonId}. EvolvePokemonOutProto.Result was {evolvePokemonOutProto.Result}", LogLevel.Info); } } await RandomHelper.RandomDelay(1000, 2000); } }
public static async Task startTransferingDuplicatePokemon(ISettings _clientSettings, Client _client, bool keepPokemonsThatCanEvolve = false, bool TransferFirstLowIV = false) { if (_clientSettings.TransferDoublePokemons) { var duplicatePokemons = await _client.Inventory.GetDuplicatePokemonToTransfer(keepPokemonsThatCanEvolve, TransferFirstLowIV); foreach (var duplicatePokemon in duplicatePokemons) { if (!_clientSettings.pokemonsToHold.Contains(duplicatePokemon.PokemonId)) { if (duplicatePokemon.Cp >= _clientSettings.DontTransferWithCPOver || PokemonInfo.CalculatePokemonPerfection(duplicatePokemon) >= _client.Settings.ivmaxpercent) { continue; } var bestPokemonOfType = await _client.Inventory.GetHighestCPofType(duplicatePokemon); var bestPokemonsCPOfType = await _client.Inventory.GetHighestCPofType2(duplicatePokemon); var bestPokemonsIVOfType = await _client.Inventory.GetHighestIVofType(duplicatePokemon); var transfer = await _client.Inventory.TransferPokemon(duplicatePokemon.Id); if (TransferFirstLowIV) { Logger.ColoredConsoleWrite(ConsoleColor.Yellow, $"Transfer {StringUtils.getPokemonNameByLanguage(_clientSettings, duplicatePokemon.PokemonId)} CP {duplicatePokemon.Cp} IV {PokemonInfo.CalculatePokemonPerfection(duplicatePokemon).ToString("0.00")} % (Best IV: {PokemonInfo.CalculatePokemonPerfection(bestPokemonsIVOfType.First()).ToString("0.00")} %)", LogLevel.Info); } else { Logger.ColoredConsoleWrite(ConsoleColor.Yellow, $"Transfer {StringUtils.getPokemonNameByLanguage(_clientSettings, duplicatePokemon.PokemonId)} CP {duplicatePokemon.Cp} IV {PokemonInfo.CalculatePokemonPerfection(duplicatePokemon).ToString("0.00")} % (Best: {bestPokemonsCPOfType.First().Cp} CP)", LogLevel.Info); } TelegramUtil.getInstance().sendInformationText(TelegramUtil.TelegramUtilInformationTopics.Transfer, StringUtils.getPokemonNameByLanguage(_clientSettings, duplicatePokemon.PokemonId), duplicatePokemon.Cp, PokemonInfo.CalculatePokemonPerfection(duplicatePokemon).ToString("0.00"), bestPokemonOfType); await RandomHelper.RandomDelay(500, 700); } } } }
private async Task ExecuteCatchAllNearbyPokemons() { _infoObservable.PushNewGeoLocations(new GeoCoordinate(_client.CurrentLat, _client.CurrentLng)); var client = _client; var mapObjects = await client.GetMapObjects(); //var pokemons = mapObjects.MapCells.SelectMany(i => i.CatchablePokemons); var pokemons = mapObjects.MapCells.SelectMany(i => i.CatchablePokemons) .OrderBy( i => LocationUtils.CalculateDistanceInMeters(_client.CurrentLat, _client.CurrentLng, i.Latitude, i.Longitude)); if (pokemons != null && pokemons.Any()) { Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"Found {pokemons.Count()} catchable Pokemon(s)."); } foreach (var pokemon in pokemons) { count++; if (count >= 3) { count = 0; await StatsLog(client); if (_clientSettings.EvolvePokemonsIfEnoughCandy) { await EvolveAllPokemonWithEnoughCandy(); } if (_clientSettings.AutoIncubate) { await StartIncubation(); } await TransferDuplicatePokemon(_clientSettings.keepPokemonsThatCanEvolve); await RecycleItems(); } if (_clientSettings.catchPokemonSkipList.Contains(pokemon.PokemonId)) { Logger.ColoredConsoleWrite(ConsoleColor.Green, "Skipped Pokemon: " + pokemon.PokemonId); continue; } var distance = LocationUtils.CalculateDistanceInMeters(_client.CurrentLat, _client.CurrentLng, pokemon.Latitude, pokemon.Longitude); await Task.Delay(distance > 100? 1000 : 100); var encounterPokemonResponse = await _client.EncounterPokemon(pokemon.EncounterId, pokemon.SpawnpointId); if (encounterPokemonResponse.Status == EncounterResponse.Types.Status.EncounterSuccess) { var bestPokeball = await GetBestBall(encounterPokemonResponse?.WildPokemon); if (bestPokeball == MiscEnums.Item.ITEM_UNKNOWN) { Logger.ColoredConsoleWrite(ConsoleColor.Red, $"No Pokeballs! - missed {pokemon.PokemonId} CP {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} IV {Math.Round(encounterPokemonResponse.WildPokemon.PokemonData.CalculateIV())}%"); return; } var inventoryBerries = await _inventory.GetItems(); var probability = encounterPokemonResponse?.CaptureProbability?.CaptureProbability_?.FirstOrDefault(); CatchPokemonResponse caughtPokemonResponse; Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"Encountered {StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId)} CP {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} IV {Math.Round(encounterPokemonResponse.WildPokemon.PokemonData.CalculateIV())}% Probability {Math.Round(probability.Value * 100)}%"); do { if (probability.HasValue && probability.Value < 0.35) { var bestBerry = await GetBestBerry(encounterPokemonResponse?.WildPokemon); var berries = inventoryBerries.Where(p => (ItemId)p.Item_ == bestBerry).FirstOrDefault(); if (bestBerry != ItemId.ItemUnknown) { //Throw berry if we can var useRaspberry = await _client.UseCaptureItem(pokemon.EncounterId, bestBerry, pokemon.SpawnpointId); Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Thrown {bestBerry}. Remaining: {berries.Count}.", LogLevel.Info); await RandomHelper.RandomDelay(50, 200); } } caughtPokemonResponse = await _client.CatchPokemon(pokemon.EncounterId, pokemon.SpawnpointId, pokemon.Latitude, pokemon.Longitude, bestPokeball); if (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchMissed) { Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"Missed {StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId)} while using {bestPokeball}"); } else if (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchEscape) { Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"{StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId)} escaped while using {bestPokeball}"); } }while (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchMissed || caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchEscape); if (caughtPokemonResponse.Status == CatchPokemonResponse.Types.CatchStatus.CatchSuccess) { foreach (int xp in caughtPokemonResponse.Scores.Xp) { _botStats.AddExperience(xp); } DateTime curDate = DateTime.Now; _infoObservable.PushNewHuntStats(String.Format("{0}/{1};{2};{3};{4}", pokemon.Latitude, pokemon.Longitude, pokemon.PokemonId, curDate.Ticks, curDate.ToString()) + Environment.NewLine); Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"Caught {StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId)} CP {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} IV {Math.Round(encounterPokemonResponse.WildPokemon.PokemonData.CalculateIV())}% using {bestPokeball} got {caughtPokemonResponse.Scores.Xp.Sum()} XP."); try { TelegramUtil.getInstance().sendInformationText(TelegramUtil.TelegramUtilInformationTopics.Catch, StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId), encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp, Math.Round(encounterPokemonResponse.WildPokemon.PokemonData.CalculateIV()), bestPokeball, caughtPokemonResponse.Scores.Xp.Sum()); } catch (Exception) { } //try //{ // var r = (HttpWebRequest)WebRequest.Create("http://pokemon.becher.xyz/index.php?pokeName=" + pokemon.PokemonId); // var rp = (HttpWebResponse)r.GetResponse(); // var rps = new StreamReader(rp.GetResponseStream()).ReadToEnd(); // Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"We caught a {pokemon.PokemonId} ({rps}) with CP {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} using a {bestPokeball}"); //} catch (Exception) //{ // Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"We caught a {pokemon.PokemonId} (Language Server Offline) with CP {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} using a {bestPokeball}"); //} _botStats.AddPokemon(1); } else { Logger.ColoredConsoleWrite(ConsoleColor.DarkYellow, $"{StringUtils.getPokemonNameByLanguage(_clientSettings, pokemon.PokemonId)} CP {encounterPokemonResponse?.WildPokemon?.PokemonData?.Cp} IV {Math.Round(encounterPokemonResponse.WildPokemon.PokemonData.CalculateIV())}% got away while using {bestPokeball}.."); failed_softban++; } } else { Logger.ColoredConsoleWrite(ConsoleColor.Red, $"Error Catching Pokemon: {encounterPokemonResponse?.Status}"); } await RandomHelper.RandomDelay(50, 200); } }
public async Task Execute() { Logger.ColoredConsoleWrite(ConsoleColor.Red, "This bot is absolutely free and open-source!"); Logger.ColoredConsoleWrite(ConsoleColor.Red, "If you've paid for it. Request a chargeback immediately!"); Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Starting Execute on login server: {_clientSettings.AuthType}", LogLevel.Info); while (true) { try { if (_clientSettings.AuthType == AuthType.Ptc) { await _client.DoPtcLogin(_clientSettings.PtcUsername, _clientSettings.PtcPassword); } else if (_clientSettings.AuthType == AuthType.Google) { _client.DoGoogleLogin(); } if (!string.IsNullOrEmpty(_clientSettings.TelegramAPIToken) && !string.IsNullOrEmpty(_clientSettings.TelegramName)) { try { _telegram = new TelegramUtil(_client, new Telegram.Bot.TelegramBotClient(_clientSettings.TelegramAPIToken), _clientSettings, _inventory); Logger.ColoredConsoleWrite(ConsoleColor.Green, "To Activate Informations with Telegram, write the Bot a message for more Informations"); var me = await _telegram.getClient().GetMeAsync(); _telegram.getClient().OnCallbackQuery += _telegram.BotOnCallbackQueryReceived; _telegram.getClient().OnMessage += _telegram.BotOnMessageReceived; _telegram.getClient().OnMessageEdited += _telegram.BotOnMessageReceived; Logger.ColoredConsoleWrite(ConsoleColor.Green, "Telegram Name: " + me.Username); _telegram.getClient().StartReceiving(); } catch (Exception) { } } await PostLoginExecute(); } catch (PtcOfflineException) { Logger.Error("PTC Server Offline. Trying to Restart in 20 Seconds..."); try { _telegram.getClient().StopReceiving(); } catch (Exception) { } await Task.Delay(10000); } catch (AccessTokenExpiredException) { Logger.Error("Server Offline, or Access Token expired. Restarting in 20 Seconds."); try { _telegram.getClient().StopReceiving(); } catch (Exception) { } await Task.Delay(10000); } catch (Exception ex) { Logger.Error($"Error: " + ex.Source); Logger.Error($"{ex}"); Logger.ColoredConsoleWrite(ConsoleColor.Green, "Trying to Restart."); try { _telegram.getClient().StopReceiving(); } catch (Exception) { } } Logger.ColoredConsoleWrite(ConsoleColor.Red, "Restarting in 10 Seconds."); await Task.Delay(10000); } }
private async Task ExecuteFarmingPokestopsAndPokemons(Client client) { var distanceFromStart = LocationUtils.CalculateDistanceInMeters(_clientSettings.DefaultLatitude, _clientSettings.DefaultLongitude, _client.CurrentLat, _client.CurrentLng); if (_clientSettings.MaxWalkingRadiusInMeters != 0 && distanceFromStart > _clientSettings.MaxWalkingRadiusInMeters) { Logger.ColoredConsoleWrite(ConsoleColor.Green, "Youre outside of the defined Max Walking Radius. Walking back!"); var update = await _navigation.HumanLikeWalking(new GeoCoordinate(_clientSettings.DefaultLatitude, _clientSettings.DefaultLongitude), _clientSettings.WalkingSpeedInKilometerPerHour, ExecuteCatchAllNearbyPokemons); var start = await _navigation.HumanLikeWalking(new GeoCoordinate(_clientSettings.DefaultLatitude, _clientSettings.DefaultLongitude), _clientSettings.WalkingSpeedInKilometerPerHour, ExecuteCatchAllNearbyPokemons); } Resources.OutPutWalking = true; var mapObjects = await _client.GetMapObjects(); //var pokeStops = mapObjects.MapCells.SelectMany(i => i.Forts).Where(i => i.Type == FortType.Checkpoint && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime()); var pokeStops = _navigation.pathByNearestNeighbour( mapObjects.MapCells.SelectMany(i => i.Forts) .Where( i => i.Type == FortType.Checkpoint && i.CooldownCompleteTimestampMs < DateTime.UtcNow.ToUnixTime()) .OrderBy( i => LocationUtils.CalculateDistanceInMeters(_client.CurrentLat, _client.CurrentLng, i.Latitude, i.Longitude)).ToArray(), _clientSettings.WalkingSpeedInKilometerPerHour); if (_clientSettings.MaxWalkingRadiusInMeters != 0) { pokeStops = pokeStops.Where(i => LocationUtils.CalculateDistanceInMeters(_client.CurrentLat, _client.CurrentLng, i.Latitude, i.Longitude) <= _clientSettings.MaxWalkingRadiusInMeters).ToArray(); if (pokeStops.Count() == 0) { Logger.ColoredConsoleWrite(ConsoleColor.Red, "We cant find any PokeStops in a range of " + _clientSettings.MaxWalkingRadiusInMeters + "m!"); await ExecuteCatchAllNearbyPokemons(); } } if (pokeStops.Count() == 0) { Logger.ColoredConsoleWrite(ConsoleColor.Red, "We cant find any PokeStops, which are unused! Probably Server unstable, or you visted them all. Retrying.."); await ExecuteCatchAllNearbyPokemons(); } else { Logger.ColoredConsoleWrite(ConsoleColor.Yellow, "We found " + pokeStops.Count() + " PokeStops near."); } foreach (var pokeStop in pokeStops) { await UseIncense(); await ExecuteCatchAllNearbyPokemons(); if (count >= 3) { count = 0; await StatsLog(client); if (_clientSettings.EvolvePokemonsIfEnoughCandy) { await EvolveAllPokemonWithEnoughCandy(); } if (_clientSettings.AutoIncubate) { await StartIncubation(); } await TransferDuplicatePokemon(_clientSettings.keepPokemonsThatCanEvolve); await RecycleItems(); //// if (_clientSettings.UseLuckyEggIfNotRunning) { await _inventory.UseLuckyEgg(_client); } } //if (_clientSettings.pokevision) //{ // foreach (spottedPoke p in await _pokevision.GetNearPokemons(_client.CurrentLat, _client.CurrentLng)) // { // var dist = LocationUtils.CalculateDistanceInMeters(_client.CurrentLat, _client.CurrentLng, p._lat, p._lng); // Logger.ColoredConsoleWrite(ConsoleColor.Magenta, $"PokeVision: A {StringUtils.getPokemonNameByLanguage(_clientSettings, p._pokeId)} in {dist:0.##}m distance. Trying to catch."); // var upd = await _navigation.HumanLikeWalking(new GeoCoordinate(p._lat, p._lng), _clientSettings.WalkingSpeedInKilometerPerHour, ExecuteCatchAllNearbyPokemons); // } //} _infoObservable.PushNewGeoLocations(new GeoCoordinate(_client.CurrentLat, _client.CurrentLng)); var distance = LocationUtils.CalculateDistanceInMeters(_client.CurrentLat, _client.CurrentLng, pokeStop.Latitude, pokeStop.Longitude); var fortInfo = await _client.GetFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude); if (fortInfo == null) { continue; } Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Next Pokestop: {fortInfo.Name} in {distance:0.##}m distance."); var update = await _navigation.HumanLikeWalking(new GeoCoordinate(pokeStop.Latitude, pokeStop.Longitude), _clientSettings.WalkingSpeedInKilometerPerHour, ExecuteCatchAllNearbyPokemons); ////var fortInfo = await client.GetFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude); var fortSearch = await _client.SearchFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude); count++; if (fortSearch.ExperienceAwarded > 0) { failed_softban = 0; _botStats.AddExperience(fortSearch.ExperienceAwarded); var egg = ""; if (fortSearch.PokemonDataEgg != null) { egg = ", Egg " + fortSearch.PokemonDataEgg.EggKmWalkedTarget; } else { egg = ""; } var gems = ""; if (fortSearch.GemsAwarded > 0) { gems = ", Gems:" + fortSearch.GemsAwarded; } else { gems = ""; } var items = ""; if (StringUtils.GetSummedFriendlyNameOfItemAwardList(fortSearch.ItemsAwarded) != "") { items = StringUtils.GetSummedFriendlyNameOfItemAwardList(fortSearch.ItemsAwarded); } else { items = "Nothing (Inventory Full?)"; } Logger.ColoredConsoleWrite(ConsoleColor.Green, $"Farmed XP: {fortSearch.ExperienceAwarded}{gems}{egg}, Items: {items}", LogLevel.Info); int eggs = 0; if (fortSearch.PokemonDataEgg != null) { eggs = fortSearch.PokemonDataEgg.EggKmWalkedTarget; } try { TelegramUtil.getInstance().sendInformationText(TelegramUtil.TelegramUtilInformationTopics.Pokestop, fortInfo.Name, fortSearch.ExperienceAwarded, eggs, fortSearch.GemsAwarded, items); } catch (Exception) { } } else { failed_softban++; if (failed_softban >= 6) { Logger.Error("Detected Softban. Trying to use our Special 1337 Unban Methode."); for (int i = 0; i < 60; i++) { var unban = await client.SearchFort(pokeStop.Id, pokeStop.Latitude, pokeStop.Longitude); if (unban.ExperienceAwarded > 0) { break; } } failed_softban = 0; Logger.ColoredConsoleWrite(ConsoleColor.Green, "Probably unbanned you."); } } await RandomHelper.RandomDelay(50, 200); } if (_clientSettings.WalkBackToDefaultLocation) { Logger.ColoredConsoleWrite(ConsoleColor.Green, "Walking back to Default Location."); await _navigation.HumanLikeWalking(new GeoCoordinate(_clientSettings.DefaultLatitude, _clientSettings.DefaultLongitude), _clientSettings.WalkingSpeedInKilometerPerHour, ExecuteCatchAllNearbyPokemons); } }