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

Commit f12ce0b

Browse files
ExplvExplv
authored andcommitted
Updating RuneScape guide section for new display name update
1 parent e73864d commit f12ce0b

File tree

1 file changed

+58
-5
lines changed

1 file changed

+58
-5
lines changed

src/sections/RuneScapeGuideSection.java

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,20 @@
1010
import org.osbot.rs07.script.MethodProvider;
1111
import utils.CachedWidget;
1212
import utils.Sleep;
13+
import utils.WidgetActionFilter;
1314

1415
import javax.swing.*;
1516
import java.util.Arrays;
1617
import java.util.Collections;
1718
import java.util.Random;
19+
import java.util.stream.Collectors;
1820

1921
public final class RuneScapeGuideSection extends TutorialSection {
2022

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");
2127
private final CachedWidget creationScreenWidget = new CachedWidget("Head");
2228
private final CachedWidget experienceWidget = new CachedWidget("What's your experience with Old School Runescape?");
2329
private boolean isAudioDisabled;
@@ -37,10 +43,14 @@ public final void onLoop() throws InterruptedException {
3743
case 0:
3844
case 1:
3945
case 2:
40-
if (creationScreenIsVisible()) {
46+
if (getConfigs().get(1042) != 21) {
47+
setDisplayName();
48+
} else if (isCreationScreenVisible()) {
4149
createRandomCharacter();
42-
} else if (experienceWidget.get(getWidgets()).isPresent() && getDialogues().selectOption(random(1, 3))) {
43-
Sleep.sleepUntil(() -> !experienceWidget.get(getWidgets()).map(widget -> !widget.isVisible()).orElse(true), 2000, 600);
50+
} else if (experienceWidget.get(getWidgets()).isPresent()) {
51+
if (getDialogues().selectOption(random(1, 3))) {
52+
Sleep.sleepUntil(() -> !experienceWidget.get(getWidgets()).map(widget -> !widget.isVisible()).orElse(true), 2000, 600);
53+
}
4454
} else {
4555
talkToInstructor();
4656
}
@@ -72,7 +82,50 @@ public final void onLoop() throws InterruptedException {
7282
}
7383
}
7484

75-
private boolean creationScreenIsVisible() {
85+
private void setDisplayName() {
86+
int configID = 1042;
87+
int configValue = getConfigs().get(configID);
88+
89+
switch (configValue) {
90+
case 0:
91+
case 1:
92+
if (suggestedNameWidget.get(getWidgets()).isPresent()) {
93+
RS2Widget suggestedWidget = suggestedNameWidget.get(getWidgets()).get();
94+
int rootID = suggestedWidget.getRootId();
95+
int secondLevelID = suggestedWidget.getSecondLevelId();
96+
RS2Widget nameWidget = getWidgets().get(rootID, secondLevelID + 2 + random(0, 2));
97+
if (nameWidget.interact()) {
98+
Sleep.sleepUntil(() -> getConfigs().get(configID) == 4, 1200);
99+
}
100+
} else if (checkNameWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent()) {
101+
if (getKeyboard().typeString(generateRandomString(4))) {
102+
Sleep.sleepUntil(() -> getConfigs().get(configID) == 2, 1200);
103+
}
104+
} else if (nameLookupWidget.get(getWidgets()).get().interact("Look up name")) {
105+
Sleep.sleepUntil(() -> getConfigs().get(configID) == 1, 1200);
106+
}
107+
break;
108+
case 4:
109+
if (setNameWidget.get(getWidgets()).isPresent()) {
110+
if (setNameWidget.get(getWidgets()).get().interact()) {
111+
Sleep.sleepUntil(() -> getConfigs().get(configID) == 21, 2400);
112+
}
113+
}
114+
default:
115+
Sleep.sleepUntil(() -> getConfigs().get(1042) != configValue, 1200);
116+
}
117+
}
118+
119+
private String generateRandomString(int maxLength) {
120+
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
121+
+ "abcdefghijklmnopqrstuvwxyz"
122+
+ "0123456789";
123+
return new Random().ints(new Random().nextInt(maxLength) + 1, 0, chars.length())
124+
.mapToObj(i -> "" + chars.charAt(i))
125+
.collect(Collectors.joining());
126+
}
127+
128+
private boolean isCreationScreenVisible() {
76129
return creationScreenWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent();
77130
}
78131

@@ -97,7 +150,7 @@ private void createRandomCharacter() throws InterruptedException {
97150
}
98151

99152
if (getWidgets().getWidgetContainingText("Accept").interact()) {
100-
Sleep.sleepUntil(() -> !creationScreenIsVisible(), 3000, 600);
153+
Sleep.sleepUntil(() -> !isCreationScreenVisible(), 3000, 600);
101154
}
102155
}
103156

0 commit comments

Comments
 (0)