use of com.pokegoapi.util.hash.HashProvider in project PokeGOAPI-Java by Grover-c13.
the class CatchPokemonAtAreaExample method main.
/**
* Catches a pokemon at an area.
*
* @param args args
*/
public static void main(String[] args) {
OkHttpClient http = new OkHttpClient();
final 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);
// Catch all pokemon in the current area
catchArea(api);
MapObjects mapObjects = api.getMap().mapObjects;
// Find all pokestops with pokemon nearby
List<Pokestop> travelPokestops = new ArrayList<>();
Set<NearbyPokemon> nearby = mapObjects.nearby;
for (NearbyPokemon nearbyPokemon : nearby) {
String fortId = nearbyPokemon.getFortId();
// Check if nearby pokemon is near a pokestop
if (fortId != null && fortId.length() > 0) {
// Find the pokestop with the fort id of the nearby pokemon
Pokestop pokestop = mapObjects.getPokestop(fortId);
if (pokestop != null && !travelPokestops.contains(pokestop)) {
travelPokestops.add(pokestop);
}
}
}
// Sort from closest to farthest
Collections.sort(travelPokestops, new Comparator<Pokestop>() {
@Override
public int compare(Pokestop primary, Pokestop secondary) {
double lat = api.latitude;
double lng = api.longitude;
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 (Pokestop pokestop : travelPokestops) {
Point destination = new Point(pokestop.getLatitude(), pokestop.getLongitude());
// Use the current player position as the source and the pokestop position as the destination
// Travel to Pokestop at 20KMPH
Path path = new Path(api.getPoint(), destination, 20.0);
System.out.println("Traveling to " + destination + " at 20KMPH!");
path.start(api);
try {
while (!path.complete) {
// Calculate the desired intermediate point for the current time
Point point = path.calculateIntermediate(api);
// Set the API location to that point
api.setLatitude(point.getLatitude());
api.setLongitude(point.getLongitude());
// Sleep for 2 seconds before setting the location again
Thread.sleep(2000);
}
} catch (InterruptedException e) {
break;
}
System.out.println("Finished traveling to pokestop, catching pokemon.");
catchArea(api);
}
} catch (NoSuchItemException | RequestFailedException e) {
Log.e("Main", "An exception occurred while running example: ", e);
}
}
use of com.pokegoapi.util.hash.HashProvider 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.inventories.pokebank.pokemons;
// 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(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().mapObjects;
List<Gym> gyms = new ArrayList<>(mapObjects.gyms);
Collections.sort(gyms, new Comparator<Gym>() {
@Override
public int compare(Gym primary, Gym secondary) {
double lat = api.latitude;
double lng = api.longitude;
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.playerProfile.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.complete) {
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.active) {
handleAttack(api, battle);
}
// Heal all pokemon after battle
for (Pokemon pokemon : possiblePokemon) {
if (pokemon.getStamina() < pokemon.getMaxStamina()) {
healPokemonFull(pokemon);
Thread.sleep(1000);
}
}
// If prestige reaches 0, deploy your pokemon
if (battle.gym.getPoints() <= 0) {
Pokemon best = possiblePokemon.get(0);
System.out.println("Deploying " + best.getPokemonId() + " to gym.");
battle.gym.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 com.pokegoapi.util.hash.HashProvider 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 com.pokegoapi.util.hash.HashProvider 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.inventories.pokebank.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 com.pokegoapi.util.hash.HashProvider in project PokeGOAPI-Java by Grover-c13.
the class UseIncenseExample method main.
/**
* Catches a pokemon at an area.
*/
public static void main(String[] args) {
OkHttpClient http = new OkHttpClient();
PokemonGo api = new PokemonGo(http, new SystemTimeImpl());
try {
HashProvider hasher = ExampleConstants.getHashProvider();
api.login(new PtcCredentialProvider(http, ExampleConstants.LOGIN, ExampleConstants.PASSWORD), hasher);
api.setLocation(ExampleConstants.LATITUDE, ExampleConstants.LONGITUDE, ExampleConstants.ALTITUDE);
api.inventories.itemBag.useIncense();
} catch (RequestFailedException e) {
// failed to login, invalid credentials, auth issue or server issue.
Log.e("Main", "Failed to login, captcha or server issue: ", e);
}
}
Aggregations