Cmontryme Posted Monday at 06:30 AM Share Posted Monday at 06:30 AM 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(); } Quote Link to comment Share on other sites More sharing options...
Khaleesi Posted Monday at 01:00 PM Share Posted Monday at 01:00 PM 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())); } } } } } 1 Quote Link to comment Share on other sites More sharing options...