Jump to content

Couple Sleep Methods


Recommended Posts

Posted (edited)

Code:

Spoiler

Conditional Sleep For New Threads:
Spoiler


private boolean conditionalSleep(BooleanSupplier condition, long maxTime, long checkTime) {
    long startTime = System.currentTimeMillis();
    while (!condition.getAsBoolean() && (System.currentTimeMillis() - startTime) < maxTime) {
        try {
            Thread.sleep(checkTime);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    return condition.getAsBoolean();
}

Usage:



if (conditionalSleep(() -> script.myPlayer().isAnimating(), 10000, 500)) {
    script.log("Player Is Animating!");
    if (conditionalSleep(() -> !script.myPlayer().isAnimating(), 10000, 500)) {
        script.log("Player is No Longer Animating");
    }
}

Animation Delay Sleep:
Spoiler


private boolean sleepWithAnimationDelay(int maxTimeToWaitForAnimationStart, int maxTimeForAnimationDelay) throws InterruptedException {
    new ConditionalSleep(maxTimeToWaitForAnimationStart, 20) {
        @Override
        public boolean condition() throws InterruptedException {
            return myPlayer().isAnimating();
        }
    }.sleep();
    long startTime = System.currentTimeMillis();
    if (myPlayer().isAnimating()) {
        while (System.currentTimeMillis() - startTime < maxTimeForAnimationDelay) {
            if (myPlayer().isAnimating()) {
                startTime = System.currentTimeMillis();
                sleep(20);
            }
        }
    } else {
        return false;
    }
    return true;
}

Usage:



if (sleepWithAnimationDelay(10000, 3000)) {
    log("Animation Delay Over!");
}

 

 

Edited by BravoTaco

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...