OVERVIEW   With this snippet, you can avoid writing in-line anonymous classes for wait conditions. This makes code cleaner and speeds up development time.   Before, you would have to do this:  new ConditionalSleep(5000){ @ Override public boolean condition() throws InterruptedException { return !myPlayer().isMoving(); } }.sleep(); Now you can do this: Timing.waitCondition(() -> !myPlayer().isMoving(), 5000); Or, if you want to specify cycle time for che