Как и написал @Ivasik делай флаг, но если знаешь, что метод не вызовется, когда игрок сойдет с блока, то создай стандартный таймер с задачей и дилеем, а в нем проверяй все, что тебе нужно
new Timer(true).schedule(new TimerTask(
void run() {
if(flag) {
if(игрок уже вне блока) {
flag =...