Add bank task

This commit is contained in:
Yuri Moens 2022-01-20 01:26:44 +01:00
parent 08dde87681
commit 01a71ba399
Signed by: ymo
GPG Key ID: F6D51D6FE15BE924

View File

@ -0,0 +1,58 @@
package io.reisub.openosrs.util.tasks;
import io.reisub.openosrs.util.Task;
import net.runelite.client.plugins.iutils.game.iNPC;
import net.runelite.client.plugins.iutils.game.iObject;
public abstract class BankTask extends Task {
@Override
public String getStatus() {
return "Banking";
}
protected void openBank() {
openBank(15);
}
protected boolean openBank(int waitTicks) {
if (!bank.isOpen()) {
iObject bankObj = getBankObject();
if (bankObj != null) {
if (bankObj.actions().contains("Bank")) {
bankObj.interact("Bank");
} else if (bankObj.actions().contains("Use")) {
bankObj.interact("Use");
} else {
bankObj.interact(0);
}
} else {
iNPC bankNpc = getBankNpc();
if (bankNpc == null) return false;
if (bankNpc.actions().contains("Bank")) {
bankNpc.interact("Bank");
} else {
bankNpc.interact(0);
}
}
game.waitUntil(() -> bank.isOpen(), waitTicks);
}
return bank.isOpen();
}
protected iObject getBankObject() {
return game.objects()
.withName("Bank chest", "Bank booth", "Bank Chest-wreck", "Bank chest")
.nearest();
}
protected iNPC getBankNpc() {
return game.npcs()
.withAction("Bank")
.nearest();
}
}