The purpose of sleep is to avoid instantaneous reaction. Otherwise, explain your reasoning.
The behavior of the method is to interact, not check.
As mentioned, overloading is doable.
Didn't see an interact method between item and entity. Here's an example (can overload to accept String) :
Does not check for item
Does not check for entity
returns true on interaction between item and entity
Yeah, there will be a lot of methods that you use often, keep them clean and separate. Reduces code duplication and makes life easier.
Ex: a timer class
It's a good solution, just be clear on how you write it so you don't get confused later (variable naming).
time variables have to be global.
private boolean idleFor(int millis){
if(myPlayer().isAnimating() || myPlayer.isMoving())
{
timeSinceAction = System.currentTimeMillis();
}
else
{
timeSinceIdle = System.currentTimeMillis();
}
return timeSinceAction + millis < timeSinceIdle;
}