private void Mine() {
for(Position rock : rockList) {
for (RS2Object r : bot.getMethods().objects.filter(main::isRock)) {
if (r.isVisible() && r.getPosition().equals(rock)) {
if (!isMined(r) && r !=null && rock.interact(bot, "Mine")) {
Sleep.sleepUntil(() -> myPlayer().isAnimating() || isMined(r), 5000);
}
}
}
}
}
I have this and it doesn't seem to stop when mining. It keeps clicking between the rocks in my rockList. I can't seem to figure out the issue. This method is called from onLoop. I'm using Explv's sleep class. I tried using normal conditional sleep without the class and sleep itself, but it still continues clicking between the rocks without waiting.
import org.osbot.rs07.utility.ConditionalSleep;
import java.util.function.BooleanSupplier;
public final class Sleep extends ConditionalSleep {
private final BooleanSupplier condition;
public Sleep(final BooleanSupplier condition, final int timeout) {
super(timeout);
this.condition = condition;
}
public Sleep(final BooleanSupplier condition, final int timeout, final int interval) {
super(timeout, interval);
this.condition = condition;
}
@Override
public final boolean condition() throws InterruptedException {
return condition.getAsBoolean();
}
public static boolean sleepUntil(final BooleanSupplier condition, final int timeout) {
return new Sleep(condition, timeout).sleep();
}
public static boolean sleepUntil(final BooleanSupplier condition, final int timeout, final int interval) {
return new Sleep(condition, timeout, interval).sleep();
}
}