Skip to content
This repository was archived by the owner on Feb 9, 2022. It is now read-only.

Commit f28e8f1

Browse files
phantaaaExplv
authored andcommitted
Fixed instructor name and minor bug fixes (#2)
1 parent a6cf9bc commit f28e8f1

12 files changed

+89
-51
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package events;
2+
3+
import org.osbot.rs07.api.Settings;
4+
import org.osbot.rs07.api.ui.Tab;
5+
import org.osbot.rs07.event.Event;
6+
import utils.CachedWidget;
7+
import utils.WidgetActionFilter;
8+
9+
public final class ToggleShiftDropEvent extends Event {
10+
11+
private final CachedWidget toggleShiftClickDrop = new CachedWidget(new WidgetActionFilter("Toggle shift click to drop"));
12+
13+
@Override
14+
public final int execute() throws InterruptedException {
15+
if (Tab.SETTINGS.isDisabled(getBot())) {
16+
setFailed();
17+
} else if (getTabs().getOpen() != Tab.SETTINGS) {
18+
getTabs().open(Tab.SETTINGS);
19+
} else if (!toggleShiftClickDrop.get(getWidgets()).isPresent()) {
20+
getSettings().open(Settings.SettingsTab.CONTROLS);
21+
} else if (toggleShiftClickDrop.get(getWidgets()).get().interact()) {
22+
setFinished();
23+
}
24+
return 200;
25+
}
26+
}

src/script/TutorialIsland.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public void onStart() throws InterruptedException {
2828
bankSection.exchangeContext(getBot());
2929
priestSection.exchangeContext(getBot());
3030
wizardSection.exchangeContext(getBot());
31+
32+
// prevents script from skipping character customization
33+
sleep(4000);
3134
}
3235

3336
@Override

src/sections/BankSection.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package sections;
22

3-
import org.osbot.rs07.api.filter.NameFilter;
4-
import org.osbot.rs07.api.filter.PositionFilter;
53
import org.osbot.rs07.api.map.Area;
64
import org.osbot.rs07.api.map.Position;
75
import org.osbot.rs07.api.model.RS2Object;
@@ -60,39 +58,41 @@ public final void onLoop() throws InterruptedException {
6058
case 510:
6159
if (!BANK_AREA.contains(myPosition())) {
6260
if (getWalking().walkPath(PATH_TO_BANK)) {
63-
getDoorHandler().handleNextObstacle(BANK_AREA);
61+
getDoorHandler().handleNextObstacle(BANK_AREA);
6462
}
6563
} else if (getDialogues().isPendingOption()) {
6664
getDialogues().selectOption("Yes.");
6765
} else if (getObjects().closest("Bank booth").interact("Use")) {
68-
Sleep.sleepUntil(this::pendingContinue, 5000);
66+
Sleep.sleepUntil(this::pendingContinue, 5000, 500);
6967
}
7068
break;
7169
case 520:
7270
if (getBank().isOpen()) {
7371
getBank().close();
72+
} else if (!getObjects().closest("Poll booth").isVisible()) {
73+
getCamera().toEntity(getObjects().closest("Poll booth"));
7474
} else if (getObjects().closest("Poll booth").interact("Use")) {
75-
Sleep.sleepUntil(this::pendingContinue, 5000);
75+
Sleep.sleepUntil(this::pendingContinue, 5000, 500);
7676
}
7777
break;
7878
case 525:
7979
if (getWidgets().closeOpenInterface() && openDoorAtPosition(new Position(3125, 3124, 0))) {
80-
Sleep.sleepUntil(() -> getProgress() != 525, 5000);
80+
Sleep.sleepUntil(() -> getProgress() != 525, 5000, 500);
8181
}
8282
break;
8383
case 530:
8484
talkToInstructor();
8585
break;
8686
case 540:
8787
if (openDoorAtPosition(new Position(3130, 3124, 0))) {
88-
Sleep.sleepUntil(() -> getProgress() != 540, 5000);
88+
Sleep.sleepUntil(() -> getProgress() != 540, 5000, 500);
8989
}
9090
break;
9191
}
9292
}
9393

9494
private boolean openDoorAtPosition(final Position position) {
95-
RS2Object door = getObjects().closest(obj -> obj.getName().equals("Door") && obj.getPosition().equals(position));
95+
RS2Object door = getObjects().closest(obj -> obj.getName().equals("Door") && obj.getPosition().equals(position));
9696
return door != null && door.interact("Open");
9797
}
9898
}

src/sections/CookingSection.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public final void onLoop() throws InterruptedException {
3232
case 130:
3333
if (getWalking().walkPath(PATH_TO_COOK_BUILDING)) {
3434
if (getDoorHandler().handleNextObstacle(COOK_BUILDING)) {
35-
Sleep.sleepUntil(() -> getProgress() == 140, 5000);
35+
Sleep.sleepUntil(() -> getProgress() == 140, 5000,500);
3636
}
3737
}
3838
break;
@@ -50,7 +50,7 @@ public final void onLoop() throws InterruptedException {
5050
break;
5151
case 180:
5252
if (getDoorHandler().handleNextObstacle(new Position(3071, 3090, 0))) {
53-
Sleep.sleepUntil(() -> getProgress() != 180, 5000);
53+
Sleep.sleepUntil(() -> getProgress() != 180, 5000,500);
5454
}
5555
break;
5656
}
@@ -60,15 +60,15 @@ private void makeDough() {
6060
if (!"Pot of flour".equals(getInventory().getSelectedItemName())) {
6161
getInventory().interact("Use", "Pot of flour");
6262
} else if (getInventory().getItem("Bucket of water").interact()) {
63-
Sleep.sleepUntil(() -> getInventory().contains("Bread dough"), 3000);
63+
Sleep.sleepUntil(() -> getInventory().contains("Bread dough"), 3000,500);
6464
}
6565
}
6666

6767
private void bakeDough() {
6868
if (!"Bread dough".equals(getInventory().getSelectedItemName())) {
6969
getInventory().interact("Use", "Bread dough");
7070
} else if (getObjects().closest("Range").interact()) {
71-
Sleep.sleepUntil(() -> getInventory().contains("Bread"), 5000);
71+
Sleep.sleepUntil(() -> getInventory().contains("Bread"), 5000,500);
7272
}
7373
}
7474
}

src/sections/FightingSection.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public final void onLoop() throws InterruptedException {
3737
case 400:
3838
VIEW_EQUIPMENT_STATS_WIDGET.get(getWidgets()).ifPresent(widget -> {
3939
if (widget.interact()) {
40-
Sleep.sleepUntil(() -> getProgress() != 400, 3000);
40+
Sleep.sleepUntil(() -> getProgress() != 400, 3000,500);
4141
}
4242
});
4343
break;
@@ -89,7 +89,7 @@ public final void onLoop() throws InterruptedException {
8989
if (!LADDER_AREA.contains(myPosition())) {
9090
getWalking().walk(LADDER_AREA);
9191
} else if (getObjects().closest("Ladder").interact("Climb-up")) {
92-
Sleep.sleepUntil(() -> !LADDER_AREA.contains(myPosition()), 5000);
92+
Sleep.sleepUntil(() -> !LADDER_AREA.contains(myPosition()), 5000,500);
9393
}
9494
break;
9595
}
@@ -103,15 +103,15 @@ private void enterRatCage() {
103103
if (!OUTSIDE_RAT_CAGE_GATE_AREA.contains(myPosition())) {
104104
getWalking().walk(OUTSIDE_RAT_CAGE_GATE_AREA);
105105
} else if (getObjects().closest("Gate").interact("Open")) {
106-
Sleep.sleepUntil(this::inRatCage, 5000);
106+
Sleep.sleepUntil(this::inRatCage, 5000,500);
107107
}
108108
}
109109

110110
private void leaveRatCage() {
111111
if (!INSIDE_RAT_CAGE_GATE_AREA.contains(myPosition())) {
112112
getWalking().walk(INSIDE_RAT_CAGE_GATE_AREA);
113113
} else if (getObjects().closest("Gate").interact("Open")) {
114-
Sleep.sleepUntil(() -> !inRatCage(), 5000);
114+
Sleep.sleepUntil(() -> !inRatCage(), 5000,500);
115115
}
116116
}
117117

@@ -123,7 +123,7 @@ private void attackRat() {
123123
//noinspection unchecked
124124
NPC giantRat = getNpcs().closest(npc -> npc.getName().equals("Giant rat") && npc.isAttackable());
125125
if (giantRat != null && giantRat.interact("Attack")) {
126-
Sleep.sleepUntil(() -> myPlayer().getInteracting() != null, 5000);
126+
Sleep.sleepUntil(() -> myPlayer().getInteracting() != null, 5000,500);
127127
}
128128
}
129129

src/sections/MiningSection.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public final void onLoop() throws InterruptedException {
7878
Optional<RS2Widget> daggerWidgetOpt = getDaggerWidget();
7979
if (daggerWidgetOpt.isPresent()) {
8080
if (daggerWidgetOpt.get().interact()) {
81-
Sleep.sleepUntil(() -> getInventory().contains("Bronze dagger"), 6000);
81+
Sleep.sleepUntil(() -> getInventory().contains("Bronze dagger"), 6000,500);
8282
}
8383
} else {
8484
smith();
@@ -87,7 +87,7 @@ public final void onLoop() throws InterruptedException {
8787
case 360:
8888
if (getWalking().walkPath(PATH_TO_GATE)) {
8989
if (getDoorHandler().handleNextObstacle(new Position(3096, 9503, 0))) {
90-
Sleep.sleepUntil(() -> getProgress() != 360, 5000);
90+
Sleep.sleepUntil(() -> getProgress() != 360, 5000,500);
9191
}
9292
}
9393
break;
@@ -100,7 +100,7 @@ private void smith() {
100100
} else if (!"Bronze bar".equals(getInventory().getSelectedItemName())) {
101101
getInventory().getItem("Bronze bar").interact("Use");
102102
} else if (getObjects().closest("Anvil").interact("Use")) {
103-
Sleep.sleepUntil(() -> getDaggerWidget().isPresent(), 5000);
103+
Sleep.sleepUntil(() -> getDaggerWidget().isPresent(), 5000,500);
104104
}
105105
}
106106

@@ -116,21 +116,21 @@ private void smelt() {
116116
if (!"Tin ore".equals(getInventory().getSelectedItemName())) {
117117
getInventory().getItem("Tin ore").interact("Use");
118118
} else if (getObjects().closest("Furnace").interact("Use")) {
119-
Sleep.sleepUntil(() -> getInventory().contains("Bronze bar"), 5000);
119+
Sleep.sleepUntil(() -> getInventory().contains("Bronze bar"), 5000,500);
120120
}
121121
}
122122

123123
private void prospect(Rock rock) {
124124
RS2Object closestRock = rock.getClosestWithOre(getBot().getMethods());
125125
if (closestRock != null && closestRock.interact("Prospect")) {
126-
Sleep.sleepUntil(this::pendingContinue, 6000);
126+
Sleep.sleepUntil(this::pendingContinue, 6000,500);
127127
}
128128
}
129129

130130
private void mine(Rock rock) {
131131
RS2Object closestRock = rock.getClosestWithOre(getBot().getMethods());
132132
if (closestRock != null && closestRock.interact("Mine")) {
133-
Sleep.sleepUntil(this::pendingContinue, 6000);
133+
Sleep.sleepUntil(this::pendingContinue, 6000,500);
134134
}
135135
}
136136
}

src/sections/PriestSection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public final void onLoop() throws InterruptedException {
6060
break;
6161
case 610:
6262
if (getDoorHandler().handleNextObstacle(new Position(3122, 3101, 0))) {
63-
Sleep.sleepUntil(() -> getProgress() != 610, 5000);
63+
Sleep.sleepUntil(() -> getProgress() != 610, 5000,500);
6464
}
6565
break;
6666
}

src/sections/QuestSection.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public final void onLoop() throws InterruptedException {
4545
case 187:
4646
// Use random emote
4747
if (getWidgets().get(216, 1, new Random().nextInt(20)).interact()) {
48-
Sleep.sleepUntil(() -> getProgress() != 187, 5000);
48+
Sleep.sleepUntil(() -> getProgress() != 187, 5000,500);
4949
}
5050
break;
5151
case 190:
@@ -57,7 +57,7 @@ public final void onLoop() throws InterruptedException {
5757
case 210:
5858
if (getWalking().walkPath(PATH_TO_QUEST_BUILDING)) {
5959
if (getDoorHandler().handleNextObstacle(QUEST_BUILDING)) {
60-
Sleep.sleepUntil(() -> getProgress() != 210, 5000);
60+
Sleep.sleepUntil(() -> getProgress() != 210, 5000,500);
6161
}
6262
}
6363
break;
@@ -72,7 +72,7 @@ public final void onLoop() throws InterruptedException {
7272
break;
7373
case 250:
7474
if (getObjects().closest("Ladder").interact("Climb-down")) {
75-
Sleep.sleepUntil(() -> getProgress() != 250, 5000);
75+
Sleep.sleepUntil(() -> getProgress() != 250, 5000,500);
7676
}
7777
break;
7878
}

src/sections/RuneScapeGuideSection.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
package sections;
22

3+
import events.DisableAudioEvent;
4+
import events.ToggleRoofsHiddenEvent;
5+
import events.ToggleShiftDropEvent;
36
import org.osbot.rs07.api.ui.RS2Widget;
47
import org.osbot.rs07.api.ui.Tab;
58
import org.osbot.rs07.event.Event;
69
import org.osbot.rs07.script.MethodProvider;
7-
import events.DisableAudioEvent;
810
import utils.CachedWidget;
911
import utils.Sleep;
10-
import events.ToggleRoofsHiddenEvent;
1112

1213
import java.util.Arrays;
1314
import java.util.Collections;
@@ -19,7 +20,7 @@ public final class RuneScapeGuideSection extends TutorialSection {
1920
private boolean isAudioDisabled;
2021

2122
public RuneScapeGuideSection() {
22-
super("RuneScape Guide");
23+
super("Gielinor Guide");
2324
}
2425

2526
@Override
@@ -33,8 +34,8 @@ public final void onLoop() throws InterruptedException {
3334
case 0:
3435
if (creationScreenIsVisible()) {
3536
createRandomCharacter();
36-
} else if (getDialogues().isPendingOption()) {
37-
getDialogues().selectOption(3);
37+
} else if (getWidgets().getWidgetContainingText("What's your experience with Old School Runescape?") != null) {
38+
getDialogues().selectOption(random(1, 3));
3839
} else {
3940
talkToInstructor();
4041
}
@@ -47,8 +48,10 @@ public final void onLoop() throws InterruptedException {
4748
isAudioDisabled = disableAudio();
4849
} else if (!getSettings().areRoofsEnabled()) {
4950
toggleRoofsHidden();
51+
} else if (!getSettings().isShiftDropActive()) {
52+
toggleShiftDrop();
5053
} else if (getObjects().closest("Door").interact("Open")) {
51-
Sleep.sleepUntil(() -> getProgress() != 10, 5000);
54+
Sleep.sleepUntil(() -> getProgress() != 10, 5000, 500);
5255
}
5356
break;
5457
default:
@@ -80,7 +83,7 @@ private void createRandomCharacter() throws InterruptedException {
8083
}
8184

8285
if (getWidgets().getWidgetContainingText("Accept").interact()) {
83-
Sleep.sleepUntil(() -> !creationScreenIsVisible(), 3000);
86+
Sleep.sleepUntil(() -> !creationScreenIsVisible(), 3000, 500);
8487
}
8588
}
8689

@@ -105,4 +108,10 @@ private boolean toggleRoofsHidden() {
105108
execute(toggleRoofsHiddenEvent);
106109
return toggleRoofsHiddenEvent.hasFinished();
107110
}
111+
112+
private boolean toggleShiftDrop() {
113+
Event toggleShiftDrop = new ToggleShiftDropEvent();
114+
execute(toggleShiftDrop);
115+
return toggleShiftDrop.hasFinished();
116+
}
108117
}

src/sections/SurvivalSection.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package sections;
22

3-
import org.osbot.rs07.api.filter.NameFilter;
4-
import org.osbot.rs07.api.filter.PositionFilter;
53
import org.osbot.rs07.api.map.Position;
64
import org.osbot.rs07.api.model.Entity;
75
import org.osbot.rs07.api.model.GroundDecoration;
@@ -72,9 +70,9 @@ public final void onLoop() throws InterruptedException {
7270
break;
7371
case 120:
7472
RS2Object gate = getObjects().closest("Gate");
75-
if (gate != null) {
76-
if (gate.interact("Open")){
77-
Sleep.sleepUntil(() -> getProgress() == 130, 5000);
73+
if (gate != null && gate.isVisible()) {
74+
if (gate.interact("Open")) {
75+
Sleep.sleepUntil(() -> getProgress() == 130, 5000,500);
7876
}
7977
} else {
8078
getWalking().walkPath(PATH_TO_GATE);
@@ -86,15 +84,15 @@ public final void onLoop() throws InterruptedException {
8684
private void chopTree() {
8785
Entity tree = getObjects().closest("Tree");
8886
if (tree != null && tree.interact("Chop down")) {
89-
Sleep.sleepUntil(() -> getInventory().contains("Logs") || !tree.exists(), 10_000);
87+
Sleep.sleepUntil(() -> getInventory().contains("Logs") || !tree.exists(), 10_000,500);
9088
}
9189
}
9290

9391
private void fish() {
9492
NPC fishingSpot = getNpcs().closest("Fishing spot");
9593
if (fishingSpot != null && fishingSpot.interact("Net")) {
9694
long rawShrimpCount = getInventory().getAmount("Raw shrimps");
97-
Sleep.sleepUntil(() -> getInventory().getAmount("Raw shrimps") > rawShrimpCount, 10_000);
95+
Sleep.sleepUntil(() -> getInventory().getAmount("Raw shrimps") > rawShrimpCount, 10_000,500);
9896
}
9997
}
10098

@@ -109,7 +107,7 @@ private void lightFire() {
109107
getInventory().getItem("Tinderbox").interact("Use");
110108
} else if (getInventory().getItem("Logs").interact()) {
111109
Position playerPos = myPosition();
112-
Sleep.sleepUntil(() -> !myPosition().equals(playerPos), 10_000);
110+
Sleep.sleepUntil(() -> !myPosition().equals(playerPos), 10_000,500);
113111
}
114112
}
115113

@@ -121,7 +119,7 @@ private Optional<Position> getEmptyPosition() {
121119
List<Position> allPositions = myPlayer().getArea(10).getPositions();
122120

123121
// Remove any position with an object (except ground decorations, as they can be walked on)
124-
for(RS2Object object : getObjects().getAll()){
122+
for (RS2Object object : getObjects().getAll()) {
125123
if (object instanceof GroundDecoration) {
126124
continue;
127125
}
@@ -140,7 +138,7 @@ private void cook() {
140138
RS2Object fire = getObjects().closest("Fire");
141139
if (fire != null && fire.interact("Use")) {
142140
long rawShrimpCount = getInventory().getAmount("Raw shrimps");
143-
Sleep.sleepUntil(() -> getInventory().getAmount("Raw shrimps") < rawShrimpCount, 5000);
141+
Sleep.sleepUntil(() -> getInventory().getAmount("Raw shrimps") < rawShrimpCount, 5000,500);
144142
}
145143
}
146144
}

0 commit comments

Comments
 (0)