public static void registerCoordinateEvent(AreaEvent areaEvent) { Event newCoordinateEvent = new Event(0); newCoordinateEvent.setAction(() => { bool standingStill = areaEvent.getPlayer().getSprites().getPrimarySprite() == -1 && areaEvent.getPlayer().getSprites().getSecondarySprite() == -1; if (areaEvent.getPlayer().getDistanceEvent() == null || !areaEvent.getPlayer().getDistanceEvent().Equals(areaEvent)) { newCoordinateEvent.stop(); return; } if (standingStill) { if (areaEvent.inArea()) { areaEvent.run(); newCoordinateEvent.stop(); areaEvent.setDistanceEventNull(); return; } } newCoordinateEvent.setTick(500); }); registerEvent(newCoordinateEvent); }