onLoop is basically a while(true) loop. It's the core of the script. It runs repeatedly until the script is stopped.
ConditionalSleep is used to sleep until an action happens. I know a lot of people use this class for conditional sleeps:
So to drop something, you may do:
if(inventory.drop(itemId)) {
Sleep.sleepUntil(() -> !inventory.contains(itemId), 2000);
Thread.sleep(MethodProvider.random(100, 400));
}
It really cleans it up.