Jump to content

[Snippet] CSleep, Syntactic Sugar for ConditionalSleep


Recommended Posts

Posted (edited)

Quick snippet that allows you to pass lambda expressions in order to evaluate ConditionalSleep.

 

Syntactic sugar:

CSleep.create(2400, 200, () -> !myPlayer().getPosition().equals(cache)).sleep();

vs.

new ConditionalSleep(2400,200) {@Override public boolean condition() throws InterruptedException { return !myPlayer().getPosition().equals(cache); }}.sleep();

Snippet:

package org.botre;

import java.util.function.Function;

import org.osbot.rs07.utility.ConditionalSleep;

public final class CSleep {

	private CSleep() {
	
	}
	
	public static ConditionalSleep create(int maximumMs, int deviationMs, BooleanSupplier condition) {
		return new ConditionalSleep(maximumMs, deviationMs) {
			@Override
			public boolean condition() throws InterruptedException {
				return condition.getAsBoolean();
			}
		};
	}
	
}
Edited by Botre
  • Like 4
  • 2 weeks later...
Posted (edited)
package org.botre;

import java.util.function.Function;

import org.osbot.rs07.utility.ConditionalSleep;

public final class CSleep {

	private CSleep() {
	
	}
	
	public static ConditionalSleep create(int maximumMs, int deviationMs, BooleanSupplier condition) {
		return new ConditionalSleep(maximumMs, deviationMs) {
			@Override
			public boolean condition() throws InterruptedException {
				return condition.getAsBoolean();
			}
		};
	}
	
}

 

Alternatively you could just extend the ConditionalSleep class:

import org.osbot.rs07.utility.ConditionalSleep;
import java.util.function.BooleanSupplier;

public final class FConditionalSleep extends ConditionalSleep {

    private final BooleanSupplier condition;

    public FConditionalSleep(final BooleanSupplier condition, int timeout) {
        super(timeout);
        this.condition = condition;
    }

    @Override
    public boolean condition() throws InterruptedException {
        return condition.getAsBoolean();
    }
}
new FConditionalSleep(() -> myPlayer().isAnimating(), 5000).sleep();
Edited by Explv
  • Like 3

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...