Hey guys, so I want to interact with some of the powerups in nmz. This is what ive written:
RS2Object powerup = getObjects().closest(n -> powerups.contains(n.getName()));
if (powerup != null) {
powerup.interact();
Sleep.sleepUntil(() -> powerup == null || !powerup.hasAction("Activate"), 5000);
}
Where powerups is a list containing the names of the powerups that I want to interact with.
I've tried powerup as an NPC as well as a RS2Object, but no matter what, they are always null.
Any ideas?
SOLVED (see below):
I decided I might as well share the snippet I eventually used in case it is of use to anyone else:
List<String> powerups = Arrays.asList("Zapper", "Recurrent damage");
public boolean listContainsStringContaining(List<String> list, String string) {
for (String listString : list) {
if (string.contains(listString)) {
return true;
}
}
return false;
}
public void activatePowerups() {
RS2Object powerup = getObjects().closest(n -> listContainsStringContaining(powerups, n.getName()));
if (powerup != null) {
powerup.interact();
Sleep.sleepUntil(() -> powerup == null || !powerup.hasAction("Activate"), 5000);
log(powerup.getName());
}
}