Jump to content

Nested ConditionalSleep?


Cmontryme

Recommended Posts

Hello folks, I was wondering if someone could explain how I could nest a conditionalsleep so that it can use the widgets after interacting with a Object.

if(fire != null && !myPlayer().isAnimating() && fire.interact("Cook")) {
                new ConditionalSleep(5000) {
                    @Override
                    public boolean condition() {
                        return myPlayer().isAnimating() || !fire.exists();
                    }
                }.sleep();
            }

 

Link to comment
Share on other sites

6 hours ago, Cmontryme said:

Hello folks, I was wondering if someone could explain how I could nest a conditionalsleep so that it can use the widgets after interacting with a Object.

if(fire != null && !myPlayer().isAnimating() && fire.interact("Cook")) {
                new ConditionalSleep(5000) {
                    @Override
                    public boolean condition() {
                        return myPlayer().isAnimating() || !fire.exists();
                    }
                }.sleep();
            }

 

 Not sure what you mean by nest a conditionalSleep, but I belive i know what you are trying to do

Try to only do 1 action every loop to get a stable outcome
the onLoop thread keeps on running so you should just interact with a widget when it's visible.

Something like this: (Probably does not work as I don't know the exact texts and actions on the widget)

    @Override
    public int onLoop() {

        if (!myPlayer().isAnimating()) {
            RS2Object fire = getObjects().closest("Fire");
            if (fire != null) {
                RS2Widget cookWidget = getCookingWidget();
                if (isWidgetVisible(cookWidget)) {
                    if (cookWidget.interact("Cook")) {
                        ConditionalSleep2.sleep(5000, () -> !getInventory().contains("Raw trout") || !fire.exists()));
                    }
                } else {
                    if (fire.interact("Cook")) {
                        ConditionalSleep2.sleep(5000, () -> isWidgetVisible(getCookingWidget()));
                    }
                }
            }
        }
    }

 

  • Heart 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

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