Jump to content
Frequently Asked Questions
  • Are you not able to open the client? Try following our getting started guide
  • Still not working? Try downloading and running JarFix
  • Help! My bot doesn't do anything! Enable fresh start in client settings and restart the client
  • How to purchase with PayPal/OSRS/Crypto gold? You can purchase vouchers from other users
  • To many login attempts stuck


    Mancubus

    Recommended Posts

    The RandomSolver that handles the Too many login attempts screen will get stuck on there trying to login over and over again for hours on end.
    The problem is obviously that it doesnt wait enough time before it tries to login again. Because they are fixed if I pause the script for 20 mins or so and then start it again.

    Can this issue get looked into? just making it wait 20-30 mins would fix it I imagine.

    Link to comment
    Share on other sites

    There's a lot of variables to when the "too many login attempts" clears. Sometimes the login attempt limit clears within a minutes, other times 10+. Sometimes after a few world hops, other times 20+ hops. Because of this, 20-30 min wait may be a nuisance for some scripts if implemented as a blanket solution (though I'd personally love to see it implemented, but I'm biased as I usually run scripts that hop worlds a lot!)

     

    Think you'd be better off writing something yourself to handle waiting that timer out. That way you have control over wait times to find the perfect fit.

     

    EDIT: Found this snippet from one of my old scripts, very poorly written lmao but can use as a starting point. I had used gameState to determine if I was at the login screen for too long, and then disabling the login handler & waiting 15 mins if that was the case.

     

    public int onLoop() {
            if (Client.getGameState()==GameState.LOGIN_SCREEN){ //If at login screen
               BreakT.reset(); //Start break timer
               this.getRandomManager().enableSolver(RandomEvent.LOGIN);
               log("Login Enabled");
               while (Client.getGameState()!=GameState.LOGGED_IN){
                   log("Logging in");
                   if (Client.getGameState()==GameState.LOGGED_IN){
                       break; 
                   }
                   if (BreakT.elapsed()>60000){
                       log("Login attempts exceeded, waiting 15 minutes");
                       this.getRandomManager().disableSolver(RandomEvent.LOGIN);
                       sleepUntil(() -> Client.getGameState() != GameState.LOGIN_SCREEN, 900000); //I used sleepUntil because sometimes the login handler would try one last time. It'd end up successfully logging in but then sleeping. This seems to prevent that from happening
                       BreakT.reset();
                       this.getRandomManager().enableSolver(RandomEvent.LOGIN);
                   }
               }
               log("Is it looping?");
            } else {
                this.getRandomManager().disableSolver(RandomEvent.LOGIN);
            }
    
            for (Node node : nodes) {
                if(node.validate()){
                    return node.execute();
                }
            }
    
           // log("No node valid");
            return 200;
        }

     

    Link to comment
    Share on other sites

    21 minutes ago, roflme said:

    There's a lot of variables to when the "too many login attempts" clears. Sometimes the login attempt limit clears within a minutes, other times 10+. Sometimes after a few world hops, other times 20+ hops. Because of this, 20-30 min wait may be a nuisance for some scripts if implemented as a blanket solution (though I'd personally love to see it implemented, but I'm biased as I usually run scripts that hop worlds a lot!)

     

    Think you'd be better off writing something yourself to handle waiting that timer out. That way you have control over wait times to find the perfect fit.

     

    EDIT: Found this snippet from one of my old scripts, very poorly written lmao but can use as a starting point. I had used gameState to determine if I was at the login screen for too long, and then disabling the login handler & waiting 15 mins if that was the case.

     

    
    public int onLoop() {
            if (Client.getGameState()==GameState.LOGIN_SCREEN){ //If at login screen
               BreakT.reset(); //Start break timer
               this.getRandomManager().enableSolver(RandomEvent.LOGIN);
               log("Login Enabled");
               while (Client.getGameState()!=GameState.LOGGED_IN){
                   log("Logging in");
                   if (Client.getGameState()==GameState.LOGGED_IN){
                       break; 
                   }
                   if (BreakT.elapsed()>60000){
                       log("Login attempts exceeded, waiting 15 minutes");
                       this.getRandomManager().disableSolver(RandomEvent.LOGIN);
                       sleepUntil(() -> Client.getGameState() != GameState.LOGIN_SCREEN, 900000); //I used sleepUntil because sometimes the login handler would try one last time. It'd end up successfully logging in but then sleeping. This seems to prevent that from happening
                       BreakT.reset();
                       this.getRandomManager().enableSolver(RandomEvent.LOGIN);
                   }
               }
               log("Is it looping?");
            } else {
                this.getRandomManager().disableSolver(RandomEvent.LOGIN);
            }
    
            for (Node node : nodes) {
                if(node.validate()){
                    return node.execute();
                }
            }
    
           // log("No node valid");
            return 200;
        }

     

    Thank you very much for your detailed response! I will definately try to create some solution myself with your snippet, looks good. I'm not familair with the Node part at the end but Ill figure something out 😛

    Link to comment
    Share on other sites

    Archived

    This topic is now archived and is closed to further replies.

    ×
    ×
    • Create New...

    Important Information

    We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.