diff --git a/src/script/TutorialIsland.java b/src/script/TutorialIsland.java index 8951834..52a868c 100644 --- a/src/script/TutorialIsland.java +++ b/src/script/TutorialIsland.java @@ -3,6 +3,7 @@ import org.osbot.rs07.script.Script; import org.osbot.rs07.script.ScriptManifest; import sections.*; +import utils.Sleep; @ScriptManifest(author = "Explv", name = "Explv's Tutorial Island", info = "Completes Tutorial Island", version = 5.2, logo = "") public final class TutorialIsland extends Script { @@ -30,7 +31,7 @@ public void onStart() throws InterruptedException { wizardSection.exchangeContext(getBot()); // prevents script from skipping character customization - sleep(4000); + Sleep.sleepUntil(() -> getClient().isLoggedIn() && myPlayer().isVisible() && myPlayer().isOnScreen(), 6000, 500); } @Override diff --git a/src/sections/BankSection.java b/src/sections/BankSection.java index 5254666..45c3d63 100644 --- a/src/sections/BankSection.java +++ b/src/sections/BankSection.java @@ -3,10 +3,12 @@ import org.osbot.rs07.api.map.Area; import org.osbot.rs07.api.map.Position; import org.osbot.rs07.api.model.RS2Object; +import org.osbot.rs07.api.ui.RS2Widget; import utils.Sleep; import java.util.Arrays; import java.util.List; +import java.util.Optional; public final class BankSection extends TutorialSection { @@ -44,7 +46,7 @@ public final class BankSection extends TutorialSection { ); public BankSection() { - super("Financial Advisor"); + super("Account Guide"); } @Override @@ -83,6 +85,12 @@ public final void onLoop() throws InterruptedException { case 530: talkToInstructor(); break; + case 531: + openAccountManagementTab(); + break; + case 532: + talkToInstructor(); + break; case 540: if (openDoorAtPosition(new Position(3130, 3124, 0))) { Sleep.sleepUntil(() -> getProgress() != 540, 5000, 500); @@ -95,4 +103,14 @@ private boolean openDoorAtPosition(final Position position) { RS2Object door = getObjects().closest(obj -> obj.getName().equals("Door") && obj.getPosition().equals(position)); return door != null && door.interact("Open"); } + + private void openAccountManagementTab() { + if (accountManagementWidget().isPresent() && accountManagementWidget().get().interact()) { + Sleep.sleepUntil(() -> getProgress() == 532, 5000, 500); + } + } + + private Optional accountManagementWidget() { + return getWidgets().containingActions(548, "Account Management").stream().findFirst(); + } }