Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Not sleeping

Featured Replies

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();
    }
}

 

Sleep.sleepUntil(() -> myPlayer().isAnimating() || isMined(r), 5000);

One part of your condition to stop sleeping is when your player begins to/is doing something, rather than when it stops doing something. So as soon as it starts mining it breaks the sleep and starts looking for another rock.

Edited by luciuspragg

  • Author
32 minutes ago, luciuspragg said:

Sleep.sleepUntil(() -> myPlayer().isAnimating() || isMined(r), 5000);

One part of your condition to stop sleeping is when your player begins to/is doing something, rather than when it stops doing something. So as soon as it starts mining it breaks the sleep and starts looking for another rock.

I fixed it. It was this and then moving the interact out of the if statement


Thanks guys.

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.