Hi everyone, I would love some help with this issue I am having.
On Apollo I have this ObjectActionEventHandler class
Code:
/**
* An event handler which broadcasts public chat messages.
*
* @author Graham
*/
public final class ObjectActionEventHandler extends EventHandler<ObjectActionEvent> {
@Override
public void handle(EventHandlerContext ctx, Player player, ObjectActionEvent event) {
StaticObject obj = World.getWorld().getObject(event.getId(), new Position(event.getPosition().getX(), event.getPosition().getY(), player.getPosition().getHeight()));
if(obj == null){
player.sendMessage("Invalid object!");
return;
}
int offX = player.getLastKnownRegion().getTopLeftSectorX() * 8;
int offY = player.getLastKnownRegion().getTopLeftSectorY() * 8;
boolean reached = PathFinder.findRoute(player, event.getPosition().getX(), event.getPosition().getY(), true, 1, obj);
if (player.getWalkingQueue().size() > 0) player.send(new MinimapFlagEvent(player.getDestination().getX() - offX, player.getDestination().getY() - offY)); else player.send(new MinimapFlagEvent(player.getPosition().getX() - offX, player.getPosition().getY() - offY));
player.sendMessage("Object Option " + event.getOption() + " for ID: " + event.getId() + ", [" + event.getPosition().getX() + ", " + event.getPosition().getY() + ", " + player.getPosition().getHeight() + "], Reached: " + reached);
// I would like this action to happen once I'm in front of the specified object.
switch (event.getId()) {
case 11744:
player.openBank();
break;
}
}
}
Does anyone know which method I have to use to check whether I'm infront of the object? I tried to do it with a while loop like this:
Code:
while(player.getWalkingQueue().size() == 0) {
// Open bank or do w/e you want here.
}
and put that while loop in a new Runnable (thread)
However this way seems super inconvenient, I think there is some kind of method for this but I can't find out.
Thanks in advance.
Edit: N.v.m. I already found it out. I had to add some methods in Player and in PlayerSynchronizationTask.