Search in sources :

Example 1 with LoginListener

use of com.pokegoapi.api.listener.LoginListener in project PokeGOAPI-Java by Grover-c13.

the class PokemonGo method initialize.

private void initialize() throws RequestFailedException {
    if (requestHandler != null) {
        requestHandler.exit();
    }
    requestHandler = new RequestHandler(this, client);
    requestHandler.sendServerRequests(ServerRequestEnvelope.create());
    playerProfile.updateProfile();
    ServerRequest downloadConfigRequest = new ServerRequest(RequestType.DOWNLOAD_REMOTE_CONFIG_VERSION, CommonRequests.getDownloadRemoteConfigVersionMessageRequest(this));
    requestHandler.sendServerRequests(downloadConfigRequest, true);
    getAssetDigest();
    try {
        ByteString configVersionData = downloadConfigRequest.getData();
        if (itemTemplates.requiresUpdate(DownloadRemoteConfigVersionResponse.parseFrom(configVersionData))) {
            itemTemplates.update(this);
        }
    } catch (InvalidProtocolBufferException e) {
        throw new RequestFailedException(e);
    }
    playerProfile.getProfile();
    try {
        LevelUpRewardsMessage rewardsMessage = LevelUpRewardsMessage.newBuilder().setLevel(playerProfile.getStats().getLevel()).build();
        ServerRequest request = new ServerRequest(RequestType.LEVEL_UP_REWARDS, rewardsMessage);
        ServerRequestEnvelope envelope = ServerRequestEnvelope.createCommons(request, this);
        requestHandler.sendServerRequests(envelope);
        LevelUpRewardsResponse levelUpRewardsResponse = LevelUpRewardsResponse.parseFrom(request.getData());
        if (levelUpRewardsResponse.getResult() == Result.SUCCESS) {
            inventories.itemBag.addAwardedItems(levelUpRewardsResponse);
        }
    } catch (InvalidProtocolBufferException e) {
        throw new RequestFailedException(e);
    }
    ByteString getStoreItems = GetStoreItemsRequest.newBuilder().build().toByteString();
    ServerRequestEnvelope envelope = ServerRequestEnvelope.create();
    envelope.addPlatform(new ServerPlatformRequest(PlatformRequestType.GET_STORE_ITEMS, getStoreItems));
    requestHandler.sendServerRequests(envelope);
    try {
        FetchAllNewsMessageOuterClass.FetchAllNewsMessage msg = FetchAllNewsMessageOuterClass.FetchAllNewsMessage.newBuilder().build();
        ServerRequest request = new ServerRequest(RequestType.FETCH_ALL_NEWS, msg);
        envelope = ServerRequestEnvelope.create(request);
        requestHandler.sendServerRequests(envelope);
        FetchAllNewsResponseOuterClass.FetchAllNewsResponse response = FetchAllNewsResponseOuterClass.FetchAllNewsResponse.parseFrom(request.getData());
        if (response.getResult() == FetchAllNewsResponseOuterClass.FetchAllNewsResponse.Result.SUCCESS) {
            Log.i(TAG, "FetchAllNewsMessage Success: total News=" + response.getCurrentNews().getNewsArticlesCount());
            this.news.setCurrentNews(response.getCurrentNews());
            // mark all un-read new to read
            this.news.markUnreadNews();
        } else {
            Log.d(TAG, "FetchAllNewsMessage Failed. Result=" + response.getResult());
        }
    } catch (Exception e) {
        Log.d(TAG, "Exceptions FetchAllNew");
    }
    List<LoginListener> loginListeners = getListeners(LoginListener.class);
    for (LoginListener listener : loginListeners) {
        listener.onLogin(this);
    }
    loggingIn = false;
    active = true;
    ArrayList<TutorialState> tutorialStates = playerProfile.getTutorialState().getTutorialStates();
    if (tutorialStates.isEmpty()) {
        playerProfile.activateAccount();
    }
    if (!tutorialStates.contains(TutorialState.AVATAR_SELECTION)) {
        playerProfile.setupAvatar();
    }
    heartbeat.start();
    if (!tutorialStates.contains(TutorialState.POKEMON_CAPTURE)) {
        playerProfile.encounterTutorialComplete();
    }
    int remainingCodenameClaims = playerProfile.getPlayerData().getRemainingCodenameClaims();
    if (!tutorialStates.contains(TutorialState.NAME_SELECTION) && remainingCodenameClaims > 0) {
        playerProfile.claimCodeName();
    }
    if (!tutorialStates.contains(TutorialState.FIRST_TIME_EXPERIENCE_COMPLETE)) {
        playerProfile.firstTimeExperienceComplete();
    }
}
Also used : LevelUpRewardsMessage(POGOProtos.Networking.Requests.Messages.LevelUpRewardsMessageOuterClass.LevelUpRewardsMessage) ByteString(com.google.protobuf.ByteString) FetchAllNewsMessageOuterClass(POGOProtos.Networking.Requests.Messages.FetchAllNewsMessageOuterClass) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) RequestFailedException(com.pokegoapi.exceptions.request.RequestFailedException) IOException(java.io.IOException) Point(com.pokegoapi.api.map.Point) FetchAllNewsResponseOuterClass(POGOProtos.Networking.Responses.FetchAllNewsResponseOuterClass) ServerRequestEnvelope(com.pokegoapi.main.ServerRequestEnvelope) LoginListener(com.pokegoapi.api.listener.LoginListener) RequestHandler(com.pokegoapi.main.RequestHandler) RequestFailedException(com.pokegoapi.exceptions.request.RequestFailedException) ServerRequest(com.pokegoapi.main.ServerRequest) LevelUpRewardsResponse(POGOProtos.Networking.Responses.LevelUpRewardsResponseOuterClass.LevelUpRewardsResponse) ServerPlatformRequest(com.pokegoapi.main.ServerPlatformRequest) TutorialState(POGOProtos.Enums.TutorialStateOuterClass.TutorialState)

Example 2 with LoginListener

use of com.pokegoapi.api.listener.LoginListener in project PokeGOAPI-Java by Grover-c13.

the class PokemonGo method updateChallenge.

/**
 * Updates the current challenge
 *
 * @param url          the challenge url, if any
 * @param hasChallenge whether the challenge solve is required
 */
public void updateChallenge(String url, boolean hasChallenge) {
    this.hasChallenge = hasChallenge;
    this.challengeURL = url;
    if (hasChallenge) {
        List<LoginListener> listeners = getListeners(LoginListener.class);
        for (LoginListener listener : listeners) {
            listener.onChallenge(this, url);
        }
    } else {
        synchronized (challengeLock) {
            challengeLock.notifyAll();
        }
    }
}
Also used : LoginListener(com.pokegoapi.api.listener.LoginListener)

Example 3 with LoginListener

use of com.pokegoapi.api.listener.LoginListener 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);
    }
}
Also used : PtcCredentialProvider(com.pokegoapi.auth.PtcCredentialProvider) OkHttpClient(okhttp3.OkHttpClient) LoginListener(com.pokegoapi.api.listener.LoginListener) PokemonGo(com.pokegoapi.api.PokemonGo) HashProvider(com.pokegoapi.util.hash.HashProvider)

Aggregations

LoginListener (com.pokegoapi.api.listener.LoginListener)3 TutorialState (POGOProtos.Enums.TutorialStateOuterClass.TutorialState)1 FetchAllNewsMessageOuterClass (POGOProtos.Networking.Requests.Messages.FetchAllNewsMessageOuterClass)1 LevelUpRewardsMessage (POGOProtos.Networking.Requests.Messages.LevelUpRewardsMessageOuterClass.LevelUpRewardsMessage)1 FetchAllNewsResponseOuterClass (POGOProtos.Networking.Responses.FetchAllNewsResponseOuterClass)1 LevelUpRewardsResponse (POGOProtos.Networking.Responses.LevelUpRewardsResponseOuterClass.LevelUpRewardsResponse)1 ByteString (com.google.protobuf.ByteString)1 InvalidProtocolBufferException (com.google.protobuf.InvalidProtocolBufferException)1 PokemonGo (com.pokegoapi.api.PokemonGo)1 Point (com.pokegoapi.api.map.Point)1 PtcCredentialProvider (com.pokegoapi.auth.PtcCredentialProvider)1 RequestFailedException (com.pokegoapi.exceptions.request.RequestFailedException)1 RequestHandler (com.pokegoapi.main.RequestHandler)1 ServerPlatformRequest (com.pokegoapi.main.ServerPlatformRequest)1 ServerRequest (com.pokegoapi.main.ServerRequest)1 ServerRequestEnvelope (com.pokegoapi.main.ServerRequestEnvelope)1 HashProvider (com.pokegoapi.util.hash.HashProvider)1 IOException (java.io.IOException)1 OkHttpClient (okhttp3.OkHttpClient)1