Is it me or is this way over complicated? This is what I use...
private Area closestBank;
public void onStart() {
closestBank = getClosestBank();
}
private Area getClosestBank(){
Area SHILOBANK = new Area(new Position(2854,2957,0),new Position(2850,2951,0));
Area PORTSARIMBANK = new Area(new Position(3047,3233,0),new Position(3043,3237,0));
org.osbot.rs07.api.map.Area[] bankAreas = {
Banks.AL_KHARID, Banks.ARCEUUS_HOUSE, Banks.ARDOUGNE_NORTH, Banks.ARDOUGNE_SOUTH, Banks.CAMELOT, Banks.CANIFIS,
Banks.CASTLE_WARS, Banks.CATHERBY, Banks.DRAYNOR, Banks.DUEL_ARENA, Banks.EDGEVILLE, Banks.FALADOR_EAST, Banks.FALADOR_WEST,
Banks.GNOME_STRONGHOLD, Banks.GRAND_EXCHANGE, Banks.HOSIDIUS_HOUSE, Banks.LOVAKENGJ_HOUSE, Banks.LOVAKITE_MINE,
Banks.LUMBRIDGE_LOWER, Banks.LUMBRIDGE_UPPER, Banks.PEST_CONTROL, Banks.PISCARILIUS_HOUSE, Banks.SHAYZIEN_HOUSE,
Banks.TZHAAR, Banks.VARROCK_EAST, Banks.VARROCK_WEST, Banks.YANILLE,SHILOBANK,PORTSARIMBANK
};
Area closestBank = null;
for (int i = 0; i < bankAreas.length; i++) {
if (closestBank == null) {
closestBank = bankAreas[i];
} else if (myPosition().distance(bankAreas[i].getRandomPosition()) < myPosition().distance(closestBank.getRandomPosition())) {
closestBank = bankAreas[i];
}
}
return closestBank;
}