diff --git a/util/src/main/java/io/reisub/openosrs/util/CScript.java b/util/src/main/java/io/reisub/openosrs/util/CScript.java index 1b35975..c30afd3 100644 --- a/util/src/main/java/io/reisub/openosrs/util/CScript.java +++ b/util/src/main/java/io/reisub/openosrs/util/CScript.java @@ -12,7 +12,9 @@ import net.runelite.api.Skill; import net.runelite.api.events.*; import net.runelite.client.eventbus.Subscribe; 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.ui.InventoryItemStream; import javax.inject.Inject; import java.time.Duration; @@ -157,8 +159,10 @@ public abstract class CScript extends iScript { if (Duration.between(lastInventoryChange, Instant.now()).compareTo(lastActionTimeout) < 0) return; - int animId = game.localPlayer().animation(); - if (animId != IDLE || lastActionTime == null) return; + if (!game.localPlayer().isIdle() || lastActionTime == null) { + lastActionTime = Instant.now(); + return; + } Duration sinceAction = Duration.between(lastActionTime, Instant.now()); diff --git a/util/src/main/java/io/reisub/openosrs/util/enums/Activity.java b/util/src/main/java/io/reisub/openosrs/util/enums/Activity.java index 2f649e2..9391985 100644 --- a/util/src/main/java/io/reisub/openosrs/util/enums/Activity.java +++ b/util/src/main/java/io/reisub/openosrs/util/enums/Activity.java @@ -15,5 +15,9 @@ public enum Activity { CLEANING_HERBS(), CREATING_UNFINISHED_POTIONS(), CREATING_POTIONS(), - SMITHING(); + SMITHING(), + FIGHTING(), + DEPOSITING(), + REPAIRING(), + WITHDRAWING(); } diff --git a/util/src/main/java/io/reisub/openosrs/util/tasks/BankTask.java b/util/src/main/java/io/reisub/openosrs/util/tasks/BankTask.java index ca81a05..63171ec 100644 --- a/util/src/main/java/io/reisub/openosrs/util/tasks/BankTask.java +++ b/util/src/main/java/io/reisub/openosrs/util/tasks/BankTask.java @@ -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.iObject; +import java.time.Duration; +import java.time.Instant; + public abstract class BankTask extends Task { + protected Instant last = Instant.EPOCH; + @Override public String getStatus() { return "Banking"; @@ -43,6 +48,10 @@ public abstract class BankTask extends Task { return bank.isOpen(); } + protected boolean isLastBankDurationAgo(Duration duration) { + return Duration.between(last, Instant.now()).compareTo(duration) >= 0; + } + protected iObject getBankObject() { return game.objects() .withName("Bank chest", "Bank booth", "Bank Chest-wreck", "Bank chest") @@ -54,5 +63,4 @@ public abstract class BankTask extends Task { .withAction("Bank") .nearest(); } - }