to fix your eating problem, swap these 2 around:
if (warrior != null)
return State.STEAL;
if(myPlayer().getHealth() <= 30)
return State.EAT;
->
if(myPlayer().getHealth() <= 30)
return State.EAT;
if (warrior != null)
return State.STEAL;
Your door problem is probably caused by a typo in the door_tile.
public final static Area door_tile = new Area(3287, 3172, 3287, 3271);
Are you sure it shouldn't be:
public final static Area door_tile = new Area(3287, 3172, 3287, 3171);
?