private static void TransferPokemon(Queue <PokemonUiData> pokemonQueue) { if (pokemonQueue == null) { return; } while (pokemonQueue.Count > 0) { var pokemon = pokemonQueue.Dequeue(); if (pokemon == null) { continue; } if (pokemon.OwnerBot != null && pokemon.OwnerBot.Started || _debugMode) { pokemon.OwnerBot.Session.AddActionToQueue( async() => { await TransferPokemonTask.Execute(pokemon.OwnerBot.Session, pokemon.Id); return(true); }, $"{TranslationEngine.GetDynamicTranslationString("%TRANSFER%", "Transfer")}: {pokemon.Name}", pokemon.Id); pokemon.InAction = true; } } }
private void btnTransferAll_Click(object sender, RoutedEventArgs e) { var data = DataContext as PokemonListModel; var pokemonToTransfer = data.Pokemons .Where(x => x.IsSelected && !x.IsTransfering && Session.Inventory.CanTransferPokemon(x.PokemonData)) .Select(x => x.Id) .ToList(); if (pokemonToTransfer.Count > 0) { data.Transfer(pokemonToTransfer); if (MessageBox.Show("Do you want to transfer all selected pokemon", "Bulk transfer", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { Task.Run(async() => { await TransferPokemonTask.Execute( Session, Session.CancellationTokenSource.Token, pokemonToTransfer ); }); } } else { // There are no transferrable pokemon selected. } }
private async void HandleMessage(WebSocketSession session, string message) { Models.SocketMessage msgObj = null; var command = message; try { msgObj = JsonConvert.DeserializeObject <Models.SocketMessage>(message); command = msgObj.Command; } catch { } // Action request from UI should not be broadcasted to all client Action <IEvent> action = (evt) => session.Send(Serialize(evt)); switch (command) { case "PokemonList": await PokemonListTask.Execute(_session, action); break; case "EggsList": await EggsListTask.Execute(_session, action); break; case "InventoryList": await InventoryListTask.Execute(_session, action); break; case "PlayerStats": await PlayerStatsTask.Execute(_session, action); break; case "GetPokemonSettings": await PokemonSettingsTask.Execute(_session, action); break; case "TransferPokemon": if (msgObj?.Data != null) { await TransferPokemonTask.Execute(_session, ulong.Parse(msgObj?.Data)); } break; case "EvolvePokemon": if (msgObj?.Data != null) { await EvolveSpecificPokemonTask.Execute(_session, ulong.Parse(msgObj?.Data), default(CancellationToken)); } break; } }
public async Task Handle(ISession session, WebSocketSession webSocketSession, dynamic message) { await TransferPokemonTask.Execute( session, session.CancellationTokenSource.Token, new List <ulong> { (ulong)message.PokemonId } ); }
private async void HandleMessage(WebSocketSession session, string message) { Models.SocketMessage msgObj = null; var command = message; Console.WriteLine(message); try { msgObj = JsonConvert.DeserializeObject <Models.SocketMessage>(message); command = msgObj.Command; } catch (Exception ex) { Logger.Write(ex.Message, LogLevel.Error); } // Action request from UI should not be broadcasted to all client Action <IEvent> action = (evt) => session.Send(Serialize(evt)); switch (command) { case "PokemonList": await PokemonListTask.Execute(_session, action); break; case "EggsList": await EggsListTask.Execute(_session, action); break; case "InventoryList": await InventoryListTask.Execute(_session, action); break; case "PlayerStats": await PlayerStatsTask.Execute(_session, action); break; case "GetPokemonSettings": await PokemonSettingsTask.Execute(_session, action); break; case "TransferPokemon": await TransferPokemonTask.Execute(_session, msgObj?.Data); break; case "EvolvePokemon": await EvolveSpecificPokemonTask.Execute(_session, msgObj?.Data); break; } }
/* * private void UpdateEvolveAllButtonState() * { * var data = DataContext as PokemonListViewModel; * var count = data.Pokemons.Count(x => x.IsSelected && Session.Inventory.CanEvolvePokemon(x.PokemonData)); * //TODO : Thought it will better to use binding. * btnEvolveAll.Content = $"Evolve All ({count})"; * btnEvolveAll.IsEnabled = count > 0; * } */ private async void BtnTransfer_Click(object sender, RoutedEventArgs e) { var model = DataContext as PokemonListViewModel; ulong pokemonId = (ulong)((Button)sender).CommandParameter; model.Transfer(pokemonId); var button = sender as Button; await TransferPokemonTask.Execute( Session, Session.CancellationTokenSource.Token, new List <ulong> { pokemonId } ); }
private async void TransferPokemon(Queue <PokemonUiData> pokemonQueue, ListBox pokeListBox) { if (pokemonQueue == null) { return; } pokeListBox.IsEnabled = false; while (pokemonQueue.Count > 0) { var pokemon = pokemonQueue.Dequeue(); if (pokemon?.OwnerBot != null && pokemon.OwnerBot.Started) { await TransferPokemonTask.Execute(pokemon.OwnerBot.Session, pokemon.Id); } } pokeListBox.IsEnabled = true; }
private void btnTransfer_Click(object sender, RoutedEventArgs e) { var model = this.DataContext as PokemonListModel; ulong pokemonId = (ulong)((Button)sender).CommandParameter; model.Transfer(pokemonId); var button = sender as Button; //button.Content = "Transfering..."; //button.IsEnabled = false; Task.Run(async() => { await TransferPokemonTask.Execute( Session, Session.CancellationTokenSource.Token, new List <ulong> { pokemonId } ); }); }
public async Task PostLoginExecute() { Logger.Write($"Client logged in", LogLevel.Info); while (true) { if (!_isInitialized) { await Inventory.GetCachedInventory(); _playerProfile = await _client.Player.GetPlayer(); BotStats.UpdateConsoleTitle(); var stats = await Inventory.GetPlayerStats(); var stat = stats.FirstOrDefault(); if (stat != null) { BotStats.KmWalkedOnStart = stat.KmWalked; } Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); if (_clientSettings.AuthType == AuthType.Ptc) { Logger.Write($"PTC Account: {BotStats.GetUsername(_playerProfile)}\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: {BotStats.GetUsername(_playerProfile)}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Team: {_playerProfile.PlayerData.Team}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Level: {BotStats.GetCurrentInfo()}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Stardust: {_playerProfile.PlayerData.Currencies.ToArray()[1].Amount}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); await DisplayHighests(); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); var pokemonsToNotTransfer = _clientSettings.PokemonsToNotTransfer; var pokemonsToNotCatch = _clientSettings.PokemonsToNotCatch; var pokemonsToEvolve = _clientSettings.PokemonsToEvolve; await RecycleItemsTask.Execute(); if (_client.Settings.UseLuckyEggs) { await UseLuckyEggTask.Execute(); } if (_client.Settings.EvolvePokemon || _client.Settings.EvolvePokemonAboveIV) { await EvolvePokemonTask.Execute(); } if (_client.Settings.TransferPokemon) { await TransferPokemonTask.Execute(); } await ExportPokemonToCsv.Execute(_playerProfile.PlayerData); if (_clientSettings.HatchEggs) { await HatchEggsTask.Execute(); } } _isInitialized = true; await Main(); await RefreshTokens(); /* * 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 static async void TransferPokemon(ISession session, PokemonUiData pokemon) { await TransferPokemonTask.Execute(session, pokemon.Id); }
public async Task Handle(ISession session, WebSocketSession webSocketSession, dynamic message) { await TransferPokemonTask.Execute(session, webSocketSession, (ulong)message.PokemonId, (string)message.RequestID); }
public async Task PrintPlayerInfos(CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); await Inventory.GetCachedInventory(); _playerProfile = await _client.Player.GetPlayer(); BotStats.UpdateConsoleTitle(); var playerStats = (await Inventory.GetPlayerStats()).FirstOrDefault(); if (playerStats != null) { BotStats.KmWalkedOnStart = playerStats.KmWalked; } Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); if (_clientSettings.AuthType == AuthType.Ptc) { Logger.Write($"PTC Account: {BotStats.GetUsername(_playerProfile)}\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: {BotStats.GetUsername(_playerProfile)}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Team: {_playerProfile.PlayerData.Team}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Level: {BotStats.GetCurrentInfo()}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write($"Stardust: {_playerProfile.PlayerData.Currencies.ToArray()[1].Amount}", LogLevel.None, ConsoleColor.DarkGray); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); await DisplayHighests(); Logger.Write("----------------------------", LogLevel.None, ConsoleColor.Yellow); var pokemonToNotTransfer = _clientSettings.PokemonToNotTransfer; var pokemonsToNotCatch = _clientSettings.PokemonToNotCatch; var pokemonsToEvolve = _clientSettings.PokemonToEvolve; await RecycleItemsTask.Execute(); if (_client.Settings.UseLuckyEggs) { await UseLuckyEggTask.Execute(); } if (_client.Settings.EvolvePokemon || _client.Settings.EvolveOnlyPokemonAboveIV) { await EvolvePokemonTask.Execute(); } if (_client.Settings.TransferPokemon) { await TransferPokemonTask.Execute(); } if (_client.Settings.UseCSVExport) { await ExportPokemonToCsv.Execute(_playerProfile.PlayerData); } if (_clientSettings.HatchEggs) { await HatchEggsTask.Execute(); } }