use of okhttp3.OkHttpClient in project PokeGOAPI-Java by Grover-c13.
the class FightGymExample method main.
/**
* Fights gyms in the nearby area.
*/
public static void main(String[] args) {
OkHttpClient http = new OkHttpClient();
final PokemonGo api = new PokemonGo(http);
try {
//Login and set location
HashProvider hasher = ExampleConstants.getHashProvider();
api.login(new PtcCredentialProvider(http, ExampleConstants.LOGIN, ExampleConstants.PASSWORD), hasher);
api.setLocation(ExampleConstants.LATITUDE, ExampleConstants.LONGITUDE, ExampleConstants.ALTITUDE);
List<Pokemon> pokemons = api.getInventories().getPokebank().getPokemons();
//List to put all pokemon that can be used in a gym battle
List<Pokemon> possiblePokemon = new ArrayList<>();
for (Pokemon pokemon : pokemons) {
//Check if pokemon has full health and is not deployed in a gym
if (pokemon.getDeployedFortId().length() == 0) {
if (pokemon.getStamina() < pokemon.getMaxStamina()) {
healPokemonFull(api, pokemon);
if (!(pokemon.isInjured() || pokemon.isFainted())) {
possiblePokemon.add(pokemon);
}
Thread.sleep(1000);
} else {
possiblePokemon.add(pokemon);
}
} else {
System.out.println(pokemon.getPokemonId() + " already deployed.");
}
}
//Sort by highest CP
Collections.sort(possiblePokemon, new Comparator<Pokemon>() {
@Override
public int compare(Pokemon primary, Pokemon secondary) {
return Integer.compare(secondary.getCp(), primary.getCp());
}
});
//Pick the top 6 pokemon from the possible list
final Pokemon[] attackers = new Pokemon[6];
for (int i = 0; i < 6; i++) {
attackers[i] = possiblePokemon.get(i);
}
//Sort from closest to farthest
MapObjects mapObjects = api.getMap().getMapObjects();
List<Gym> gyms = new ArrayList<>(mapObjects.getGyms());
Collections.sort(gyms, new Comparator<Gym>() {
@Override
public int compare(Gym primary, Gym secondary) {
double lat = api.getLatitude();
double lng = api.getLongitude();
double distance1 = MapUtil.distFrom(primary.getLatitude(), primary.getLongitude(), lat, lng);
double distance2 = MapUtil.distFrom(secondary.getLatitude(), secondary.getLongitude(), lat, lng);
return Double.compare(distance1, distance2);
}
});
for (Gym gym : gyms) {
//Check if gym is attackable, and check if it is not owned by your team
if (gym.isAttackable() && gym.getOwnedByTeam() != api.getPlayerProfile().getPlayerData().getTeam()) {
//Walk to gym; Documented pathing in TravelToPokestopExample
Point destination = new Point(gym.getLatitude(), gym.getLongitude());
Path path = new Path(api.getPoint(), destination, 50.0);
System.out.println("Traveling to " + destination + " at 50KMPH!");
path.start(api);
try {
while (!path.isComplete()) {
Point point = path.calculateIntermediate(api);
api.setLatitude(point.getLatitude());
api.setLongitude(point.getLongitude());
System.out.println("Time left: " + (int) (path.getTimeLeft(api) / 1000) + " seconds.");
Thread.sleep(2000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Beginning battle with gym.");
//Create battle object
Battle battle = gym.battle();
//Start battle
battle.start(new FightHandler(attackers));
while (battle.isActive()) {
handleAttack(battle);
}
//Heal all pokemon after battle
for (Pokemon pokemon : possiblePokemon) {
if (pokemon.getStamina() < pokemon.getMaxStamina()) {
healPokemonFull(api, pokemon);
Thread.sleep(1000);
}
}
//If prestige reaches 0, deploy your pokemon
if (battle.getGym().getPoints() <= 0) {
Pokemon best = possiblePokemon.get(0);
System.out.println("Deploying " + best.getPokemonId() + " to gym.");
battle.getGym().deployPokemon(best);
}
}
}
} catch (RequestFailedException | InterruptedException e) {
// failed to login, invalid credentials, auth issue or server issue.
Log.e("Main", "Failed to login, captcha or server issue: ", e);
}
}
use of okhttp3.OkHttpClient in project PokeGOAPI-Java by Grover-c13.
the class SolveCaptchaExample method main.
/**
* Opens a window for captcha solving if needed
*
* @param args args
*/
public static void main(String[] args) {
OkHttpClient http = new OkHttpClient();
PokemonGo api = new PokemonGo(http);
try {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
//Startup JFX
PlatformImpl.startup(new Runnable() {
@Override
public void run() {
}
});
//Stop the JavaFX thread from exiting
Platform.setImplicitExit(false);
}
});
//Add listener to listen for the captcha URL
api.addListener(new LoginListener() {
@Override
public void onLogin(PokemonGo api) {
System.out.println("Successfully logged in with SolveCaptchaExample!");
}
@Override
public void onChallenge(PokemonGo api, String challengeURL) {
System.out.println("Captcha received! URL: " + challengeURL);
completeCaptcha(api, challengeURL);
}
});
HashProvider hasher = ExampleConstants.getHashProvider();
api.login(new PtcCredentialProvider(http, ExampleConstants.LOGIN, ExampleConstants.PASSWORD), hasher);
while (!api.hasChallenge()) {
}
} catch (Exception e) {
Log.e("Main", "Failed to run captcha example! ", e);
}
}
use of okhttp3.OkHttpClient in project PokeGOAPI-Java by Grover-c13.
the class TransferMultiplePokemon method main.
/**
* Transfers all bad pokemon from the player's inventory.
*/
public static void main(String[] args) {
OkHttpClient http = new OkHttpClient();
PokemonGo api = new PokemonGo(http);
try {
HashProvider hasher = ExampleConstants.getHashProvider();
api.login(new PtcCredentialProvider(http, ExampleConstants.LOGIN, ExampleConstants.PASSWORD), hasher);
api.setLocation(ExampleConstants.LATITUDE, ExampleConstants.LONGITUDE, ExampleConstants.ALTITUDE);
PokeBank pokebank = api.getInventories().getPokebank();
List<Pokemon> pokemons = pokebank.getPokemons();
List<Pokemon> transferPokemons = new ArrayList<>();
//Find all pokemon of bad types or with IV less than 25%
for (Pokemon pokemon : pokemons) {
PokemonId id = pokemon.getPokemonId();
double iv = pokemon.getIvInPercentage();
if (iv < 90) {
if (id == PokemonId.RATTATA || id == PokemonId.PIDGEY || id == PokemonId.CATERPIE || id == PokemonId.WEEDLE || id == PokemonId.MAGIKARP || id == PokemonId.ZUBAT || iv < 25) {
transferPokemons.add(pokemon);
}
}
}
System.out.println("Releasing " + transferPokemons.size() + " pokemon.");
Pokemon[] transferArray = transferPokemons.toArray(new Pokemon[transferPokemons.size()]);
Map<PokemonFamilyId, Integer> responses = pokebank.releasePokemon(transferArray);
//Loop through all responses and find the total amount of candies earned for each family
Map<PokemonFamilyId, Integer> candies = new HashMap<>();
for (Map.Entry<PokemonFamilyId, Integer> entry : responses.entrySet()) {
int candyAwarded = entry.getValue();
PokemonFamilyId family = entry.getKey();
Integer candy = candies.get(family);
if (candy == null) {
//candies map does not yet contain the amount if null, so set it to 0
candy = 0;
}
//Add the awarded candies from this request
candy += candyAwarded;
candies.put(family, candy);
}
for (Map.Entry<PokemonFamilyId, Integer> entry : candies.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue() + " candies awarded");
}
} catch (RequestFailedException e) {
// failed to login, invalid credentials, auth issue or server issue.
Log.e("Main", "Failed to login. Invalid credentials, captcha or server issue: ", e);
}
}
use of okhttp3.OkHttpClient in project PokeGOAPI-Java by Grover-c13.
the class TransferOnePidgeyExample method main.
/**
* Transfers one pidgey from the player's inventory.
*/
public static void main(String[] args) {
OkHttpClient http = new OkHttpClient();
PokemonGo api = new PokemonGo(http);
try {
HashProvider hasher = ExampleConstants.getHashProvider();
api.login(new PtcCredentialProvider(http, ExampleConstants.LOGIN, ExampleConstants.PASSWORD), hasher);
api.setLocation(ExampleConstants.LATITUDE, ExampleConstants.LONGITUDE, ExampleConstants.ALTITUDE);
List<Pokemon> pidgeys = api.getInventories().getPokebank().getPokemonByPokemonId(PokemonIdOuterClass.PokemonId.PIDGEY);
if (pidgeys.size() > 0) {
Pokemon pest = pidgeys.get(0);
// print the pokemon data
pest.debug();
ReleasePokemonResponseOuterClass.ReleasePokemonResponse.Result result = pest.transferPokemon();
Log.i("Main", "Transfered Pidgey result:" + result);
} else {
Log.i("Main", "You have no pidgeys :O");
}
} catch (RequestFailedException e) {
// failed to login, invalid credentials, auth issue or server issue.
Log.e("Main", "Failed to login. Invalid credentials, captcha or server issue: ", e);
}
}
use of okhttp3.OkHttpClient in project PokeGOAPI-Java by Grover-c13.
the class TutorialHandleExample method main.
/**
* Goes through the tutorial with custom responses.
*
* @param args args
*/
public static void main(String[] args) {
OkHttpClient http = new OkHttpClient();
final PokemonGo api = new PokemonGo(http);
try {
// Add listener to listen for all tutorial related events, must be registered before login is called,
// otherwise it will not be used
api.addListener(new TutorialListener() {
@Override
public String claimName(PokemonGo api, String lastFailure) {
//Last attempt to set a codename failed, set a random one by returning null
if (lastFailure != null) {
System.out.println("Codename \"" + lastFailure + "\" is already taken. Using random name.");
return null;
}
System.out.println("Selecting codename");
//Set the PTC name as the POGO username
return ExampleConstants.LOGIN;
}
@Override
public StarterPokemon selectStarter(PokemonGo api) {
//Catch Charmander as your starter pokemon
System.out.println("Selecting starter pokemon");
return StarterPokemon.CHARMANDER;
}
@Override
public PlayerAvatar selectAvatar(PokemonGo api) {
System.out.println("Selecting player avatar");
return new PlayerAvatar(PlayerGender.FEMALE, Avatar.Skin.YELLOW.id(), Avatar.Hair.BLACK.id(), Avatar.FemaleShirt.BLUE.id(), Avatar.FemalePants.BLACK_PURPLE_STRIPE.id(), Avatar.FemaleHat.BLACK_YELLOW_POKEBALL.id(), Avatar.FemaleShoes.BLACK_YELLOW_STRIPE.id(), Avatar.Eye.BROWN.id(), Avatar.FemaleBackpack.GRAY_BLACK_YELLOW_POKEBALL.id());
}
});
HashProvider hasher = ExampleConstants.getHashProvider();
api.login(new PtcCredentialProvider(http, ExampleConstants.LOGIN, ExampleConstants.PASSWORD), hasher);
api.setLocation(ExampleConstants.LATITUDE, ExampleConstants.LONGITUDE, ExampleConstants.ALTITUDE);
} catch (RequestFailedException e) {
Log.e("Main", "Failed to login!", e);
}
}
Aggregations