diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml
index d89a1a46f74..be7c2dfc30f 100644
--- a/runelite-client/pom.xml
+++ b/runelite-client/pom.xml
@@ -41,7 +41,7 @@
nogit
false
false
- 2.0.8
+ 2.0.9
nogit
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java
index 1db3ca78bcf..7324868dd90 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/Microbot.java
@@ -198,7 +198,7 @@ public class Microbot {
@Setter
@Getter
- private static boolean isRs2CacheEnabled = false;
+ public static boolean isRs2CacheEnabled = false;
/**
* Get the total runtime of the script
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/magic/Rs2Magic.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/magic/Rs2Magic.java
index 1d58c568c4f..aa35360507a 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/magic/Rs2Magic.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/magic/Rs2Magic.java
@@ -9,7 +9,6 @@
import net.runelite.client.plugins.microbot.globval.enums.InterfaceTab;
import net.runelite.client.plugins.microbot.util.Global;
import net.runelite.client.plugins.microbot.util.bank.Rs2Bank;
-import net.runelite.client.plugins.microbot.util.cache.Rs2SkillCache;
import net.runelite.client.plugins.microbot.util.camera.Rs2Camera;
import net.runelite.client.plugins.microbot.util.dialogues.Rs2Dialogue;
import net.runelite.client.plugins.microbot.util.equipment.Rs2Equipment;
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java
index 1fa0a070548..1de5730deea 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/player/Rs2Player.java
@@ -1,35 +1,21 @@
package net.runelite.client.plugins.microbot.util.player;
import lombok.Getter;
-import net.runelite.api.gameval.VarPlayerID;
-import net.runelite.api.gameval.VarbitID;
-import net.runelite.api.Actor;
-import net.runelite.api.AnimationID;
-import net.runelite.api.GraphicID;
-import net.runelite.api.MenuAction;
-import net.runelite.api.NPC;
-import net.runelite.api.Player;
-import net.runelite.api.Quest;
-import net.runelite.api.QuestState;
-import net.runelite.api.Skill;
-import net.runelite.api.VarPlayer;
-import net.runelite.api.Varbits;
+import net.runelite.api.*;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldArea;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.AnimationChanged;
import net.runelite.api.events.VarbitChanged;
+import net.runelite.api.gameval.VarPlayerID;
+import net.runelite.api.gameval.VarbitID;
import net.runelite.api.kit.KitType;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.plugins.microbot.Microbot;
import net.runelite.client.plugins.microbot.globval.VarbitValues;
import net.runelite.client.plugins.microbot.globval.enums.InterfaceTab;
-import net.runelite.client.plugins.microbot.util.cache.Rs2Cache;
-import net.runelite.client.plugins.microbot.util.cache.Rs2QuestCache;
-import net.runelite.client.plugins.microbot.util.cache.Rs2SkillCache;
import net.runelite.client.plugins.microbot.util.cache.Rs2VarPlayerCache;
-import net.runelite.client.plugins.microbot.util.cache.Rs2VarbitCache;
import net.runelite.client.plugins.microbot.util.coords.Rs2WorldPoint;
import net.runelite.client.plugins.microbot.util.equipment.Rs2Equipment;
import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject;
@@ -1606,7 +1592,8 @@ public static int getPoseAnimation() {
* @return The {@link QuestState} representing the player's progress in the quest.
*/
public static QuestState getQuestState(Quest quest) {
- return Rs2QuestCache.getQuestState(quest);
+ Client client = Microbot.getClient();
+ return Microbot.getClientThread().runOnClientThreadOptional(() -> quest.getState(client)).orElse(null);
}
/**
@@ -1616,7 +1603,7 @@ public static QuestState getQuestState(Quest quest) {
* @return The player's real level for the specified skill.
*/
public static int getRealSkillLevel(Skill skill) {
- return Rs2SkillCache.getRealSkillLevel(skill);
+ return Microbot.getClient().getRealSkillLevel(skill);
}
/**
@@ -1626,7 +1613,7 @@ public static int getRealSkillLevel(Skill skill) {
* @return The player's boosted level for the specified skill.
*/
public static int getBoostedSkillLevel(Skill skill) {
- return Rs2SkillCache.getBoostedSkillLevel(skill);
+ return Microbot.getClient().getBoostedSkillLevel(skill);
}
/**
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/widget/Rs2Widget.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/widget/Rs2Widget.java
index 0ba90a05dc3..37a68d4f9fa 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/widget/Rs2Widget.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/widget/Rs2Widget.java
@@ -1,30 +1,25 @@
package net.runelite.client.plugins.microbot.util.widget;
+import lombok.extern.slf4j.Slf4j;
import net.runelite.api.MenuAction;
import net.runelite.api.annotations.Component;
-import net.runelite.api.annotations.Interface;
-
-import java.awt.Rectangle;
-import java.awt.event.KeyEvent;
-import net.runelite.api.widgets.Widget;
import net.runelite.api.gameval.InterfaceID;
+import net.runelite.api.widgets.Widget;
import net.runelite.client.plugins.microbot.Microbot;
-import net.runelite.client.plugins.microbot.util.menu.NewMenuEntry;
-import net.runelite.client.plugins.microbot.util.misc.Rs2UiHelper;
-import net.runelite.client.plugins.microbot.util.keyboard.Rs2Keyboard;
import net.runelite.client.plugins.microbot.util.dialogues.Rs2Dialogue;
+import net.runelite.client.plugins.microbot.util.keyboard.Rs2Keyboard;
import net.runelite.client.plugins.microbot.util.math.Rs2Random;
+import net.runelite.client.plugins.microbot.util.menu.NewMenuEntry;
+import net.runelite.client.plugins.microbot.util.misc.Rs2UiHelper;
+import java.awt.*;
+import java.awt.event.KeyEvent;
+import java.util.List;
import java.util.*;
-import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import lombok.extern.slf4j.Slf4j;
-
-import static net.runelite.client.plugins.microbot.util.Global.sleepUntil;
-import static net.runelite.client.plugins.microbot.util.Global.sleepUntilTrue;
-import static net.runelite.client.plugins.microbot.util.Global.sleep;
+import static net.runelite.client.plugins.microbot.util.Global.*;
@Slf4j
public class Rs2Widget {
@@ -164,7 +159,7 @@ public static boolean hasWidgetText(String text, int componentId, boolean exact)
// Use findWidget to perform the search on all child types
Widget foundWidget = findWidget(text, List.of(rootWidget), exact);
- return foundWidget != null;
+ return foundWidget != null && !foundWidget.isHidden();
}).orElse(false);
}
@@ -175,7 +170,7 @@ public static boolean hasWidgetText(String text, int widgetId, int childId, bool
// Use findWidget to perform the search on all child types
Widget foundWidget = findWidget(text, List.of(rootWidget), exact);
- return foundWidget != null;
+ return foundWidget != null && !foundWidget.isHidden();
}).orElse(false);
}