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

Commit 8c3ca4f

Browse files
ExplvExplv
authored andcommitted
Fixing Tutorial Island, v3.1.2
1 parent e9113a6 commit 8c3ca4f

File tree

3 files changed

+36
-50
lines changed

3 files changed

+36
-50
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>org.explv.explv_osbot_manager</groupId>
88
<artifactId>explvs_aio</artifactId>
9-
<version>v3.1.1</version>
9+
<version>v3.1.2</version>
1010
<repositories>
1111
<repository>
1212
<id>local-repo</id>

src/main/java/activities/tutorial_island/RuneScapeGuideSection.java

Lines changed: 34 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,31 @@
11
package activities.tutorial_island;
22

3-
43
import org.osbot.rs07.api.ui.RS2Widget;
54
import org.osbot.rs07.api.ui.Tab;
65
import org.osbot.rs07.event.Event;
6+
import org.osbot.rs07.script.MethodProvider;
77
import util.Sleep;
88
import util.event.DisableAudioEvent;
99
import util.event.EnableFixedModeEvent;
1010
import util.event.ToggleRoofsHiddenEvent;
1111
import util.event.ToggleShiftDropEvent;
1212
import util.widget.CachedWidget;
13-
import util.widget.filters.WidgetActionFilter;
1413

1514
import java.util.Arrays;
1615
import java.util.Collections;
17-
import java.util.Optional;
1816
import java.util.Random;
1917
import java.util.stream.Collectors;
2018

2119
public final class RuneScapeGuideSection extends TutorialSection {
2220

23-
private final CachedWidget nameLookupWidget = new CachedWidget(new WidgetActionFilter("Look up name"));
24-
private final CachedWidget checkNameWidget = new CachedWidget(w -> w.getMessage().contains("What name would you like to check"));
25-
private final CachedWidget suggestedNameWidget = new CachedWidget("suggestions");
26-
private final CachedWidget setNameWidget = new CachedWidget("Set name");
21+
22+
private final CachedWidget nameAcceptedWidget = new CachedWidget(w -> w.getMessage().contains("Great!"));
23+
24+
private final CachedWidget nameLookupWidget = new CachedWidget(w -> w.getMessage().contains("Look up name"));
25+
private final CachedWidget nameInputWidget = new CachedWidget(w -> w.getMessage().contains("What name would you like to check"));
26+
private final CachedWidget nameSetWidget = new CachedWidget("Set name");
27+
private final CachedWidget nameScreenDetectionWidget = new CachedWidget("Choose display name");
28+
2729
private final CachedWidget creationScreenWidget = new CachedWidget("Head");
2830
private final CachedWidget experienceWidget = new CachedWidget("What's your experience with Old School Runescape?");
2931
private boolean isAudioDisabled;
@@ -43,13 +45,13 @@ public final void onLoop() throws InterruptedException {
4345
case 0:
4446
case 1:
4547
case 2:
46-
if (getConfigs().get(1042) != 21) {
48+
if (nameScreenDetectionWidget.get(getWidgets()).isPresent()) {
4749
setDisplayName();
4850
} else if (isCreationScreenVisible()) {
4951
createRandomCharacter();
50-
} else if (experienceWidget.isVisible(getWidgets())) {
52+
} else if (experienceWidget.get(getWidgets()).isPresent()) {
5153
if (getDialogues().selectOption(random(1, 3))) {
52-
Sleep.sleepUntil(() -> !experienceWidget.isVisible(getWidgets()), 2000, 600);
54+
Sleep.sleepUntil(() -> !experienceWidget.get(getWidgets()).map(widget -> !widget.isVisible()).orElse(true), 2000, 600);
5355
}
5456
} else {
5557
talkToInstructor();
@@ -65,6 +67,8 @@ public final void onLoop() throws InterruptedException {
6567
isAudioDisabled = disableAudio();
6668
} else if (!getSettings().areRoofsEnabled()) {
6769
toggleRoofsHidden();
70+
} else if (!getSettings().isShiftDropActive()) {
71+
toggleShiftDrop();
6872
} else if (getObjects().closest("Door").interact("Open")) {
6973
Sleep.sleepUntil(() -> getProgress() != 10, 5000, 600);
7074
}
@@ -76,36 +80,23 @@ public final void onLoop() throws InterruptedException {
7680
}
7781

7882
private void setDisplayName() {
79-
int configID = 1042;
80-
int configValue = getConfigs().get(configID);
81-
82-
switch (configValue) {
83-
case 0:
84-
case 1:
85-
if (suggestedNameWidget.isVisible(getWidgets())) {
86-
Optional<RS2Widget> nameWidget = suggestedNameWidget.getRelative(
87-
getWidgets(),
88-
0, 2 + random(0, 2), 0
89-
);
90-
if (nameWidget.isPresent() && nameWidget.get().interact()) {
91-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 4, 1200);
92-
}
93-
} else if (checkNameWidget.isVisible(getWidgets())) {
94-
if (getKeyboard().typeString(generateRandomString(4))) {
95-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 2, 1200);
96-
}
97-
} else if (nameLookupWidget.interact(getWidgets(), "Look up name")) {
98-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 1, 1200);
99-
}
100-
break;
101-
case 4:
102-
if (setNameWidget.isVisible(getWidgets())) {
103-
if (setNameWidget.interact(getWidgets())) {
104-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 21, 2400);
105-
}
83+
if (nameAcceptedWidget.get(getWidgets()).isPresent()) {
84+
nameSetWidget.get(getWidgets()).ifPresent(rs2Widget -> {
85+
if (rs2Widget.interact()) {
86+
Sleep.sleepUntil(() -> !nameScreenDetectionWidget.get(getWidgets()).isPresent(), 8000, 600);
10687
}
107-
default:
108-
Sleep.sleepUntil(() -> getConfigs().get(1042) != configValue, 1200);
88+
});
89+
} else if (nameInputWidget.get(getWidgets()).isPresent()
90+
&& nameInputWidget.get(getWidgets()).get().isVisible()
91+
&& getKeyboard().typeString(generateRandomString(5), true)) {
92+
93+
final int configValue = getConfigs().get(1042);
94+
95+
Sleep.sleepUntil(() -> getConfigs().get(1042) != configValue, 8000, 600);
96+
Sleep.sleepUntil(() -> getConfigs().get(1042) == configValue || nameAcceptedWidget.get(getWidgets()).isPresent(), 8000, 600);
97+
} else if (nameLookupWidget.get(getWidgets()).isPresent()
98+
&& nameLookupWidget.get(getWidgets()).get().interact()) {
99+
Sleep.sleepUntil(() -> nameInputWidget.get(getWidgets()).isPresent() && nameInputWidget.get(getWidgets()).get().isVisible(), 8000, 600);
109100
}
110101
}
111102

@@ -119,20 +110,15 @@ private String generateRandomString(int maxLength) {
119110
}
120111

121112
private boolean isCreationScreenVisible() {
122-
return creationScreenWidget.isVisible(getWidgets());
113+
return creationScreenWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent();
123114
}
124115

125116
private void createRandomCharacter() throws InterruptedException {
126-
// letting all the widgets show up
127-
sleep(2000);
128-
129117
if (new Random().nextInt(2) == 1) {
130118
getWidgets().getWidgetContainingText("Female").interact();
131119
}
132120

133-
int rootID = creationScreenWidget.get(getWidgets()).get().getRootId();
134-
135-
final RS2Widget[] childWidgets = getWidgets().getWidgets(rootID);
121+
final RS2Widget[] childWidgets = getWidgets().getWidgets(creationScreenWidget.get(getWidgets()).get().getRootId());
136122
Collections.shuffle(Arrays.asList(childWidgets));
137123

138124
for (final RS2Widget childWidget : childWidgets) {
@@ -154,7 +140,7 @@ private void clickRandomTimes(final RS2Widget widget) throws InterruptedExceptio
154140

155141
for (int i = 0; i < clickCount; i++) {
156142
if (widget.interact()) {
157-
sleep(150);
143+
MethodProvider.sleep(150);
158144
}
159145
}
160146
}
@@ -176,4 +162,4 @@ private boolean toggleShiftDrop() {
176162
execute(toggleShiftDrop);
177163
return toggleShiftDrop.hasFinished();
178164
}
179-
}
165+
}

src/main/java/script/AIO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
@ScriptManifest(author = "Explv", name = "Explv's AIO " + AIO.VERSION, info = "AIO", version = 0, logo = "http://i.imgur.com/58Zz0fb.png")
3131
public class AIO extends Script {
3232

33-
static final String VERSION = "v3.1.1";
33+
static final String VERSION = "v3.1.2";
3434

3535
private Gui gui;
3636
private Paint paint;

0 commit comments

Comments
 (0)