Add bank task
This commit is contained in:
parent
08dde87681
commit
01a71ba399
@ -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();
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user