Add last bank check, activities and improve idle check

This commit is contained in:
Yuri Moens 2022-01-22 12:08:29 +01:00
parent 5948f13f06
commit c0ee06e38a
Signed by: ymo
GPG Key ID: F6D51D6FE15BE924
3 changed files with 20 additions and 4 deletions

View File

@ -12,7 +12,9 @@ import net.runelite.api.Skill;
import net.runelite.api.events.*; import net.runelite.api.events.*;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.iutils.game.iPlayer; import net.runelite.client.plugins.iutils.game.iPlayer;
import net.runelite.client.plugins.iutils.scene.GameObjectStream;
import net.runelite.client.plugins.iutils.scripts.iScript; import net.runelite.client.plugins.iutils.scripts.iScript;
import net.runelite.client.plugins.iutils.ui.InventoryItemStream;
import javax.inject.Inject; import javax.inject.Inject;
import java.time.Duration; import java.time.Duration;
@ -157,8 +159,10 @@ public abstract class CScript extends iScript {
if (Duration.between(lastInventoryChange, Instant.now()).compareTo(lastActionTimeout) < 0) return; if (Duration.between(lastInventoryChange, Instant.now()).compareTo(lastActionTimeout) < 0) return;
int animId = game.localPlayer().animation(); if (!game.localPlayer().isIdle() || lastActionTime == null) {
if (animId != IDLE || lastActionTime == null) return; lastActionTime = Instant.now();
return;
}
Duration sinceAction = Duration.between(lastActionTime, Instant.now()); Duration sinceAction = Duration.between(lastActionTime, Instant.now());

View File

@ -15,5 +15,9 @@ public enum Activity {
CLEANING_HERBS(), CLEANING_HERBS(),
CREATING_UNFINISHED_POTIONS(), CREATING_UNFINISHED_POTIONS(),
CREATING_POTIONS(), CREATING_POTIONS(),
SMITHING(); SMITHING(),
FIGHTING(),
DEPOSITING(),
REPAIRING(),
WITHDRAWING();
} }

View File

@ -4,7 +4,12 @@ import io.reisub.openosrs.util.Task;
import net.runelite.client.plugins.iutils.game.iNPC; import net.runelite.client.plugins.iutils.game.iNPC;
import net.runelite.client.plugins.iutils.game.iObject; import net.runelite.client.plugins.iutils.game.iObject;
import java.time.Duration;
import java.time.Instant;
public abstract class BankTask extends Task { public abstract class BankTask extends Task {
protected Instant last = Instant.EPOCH;
@Override @Override
public String getStatus() { public String getStatus() {
return "Banking"; return "Banking";
@ -43,6 +48,10 @@ public abstract class BankTask extends Task {
return bank.isOpen(); return bank.isOpen();
} }
protected boolean isLastBankDurationAgo(Duration duration) {
return Duration.between(last, Instant.now()).compareTo(duration) >= 0;
}
protected iObject getBankObject() { protected iObject getBankObject() {
return game.objects() return game.objects()
.withName("Bank chest", "Bank booth", "Bank Chest-wreck", "Bank chest") .withName("Bank chest", "Bank booth", "Bank Chest-wreck", "Bank chest")
@ -54,5 +63,4 @@ public abstract class BankTask extends Task {
.withAction("Bank") .withAction("Bank")
.nearest(); .nearest();
} }
} }