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

Commit f16aabd

Browse files
phantaaaExplv
authored andcommitted
Updated to click random name (#11)
* Updated to click random name on name screen
1 parent 8d73383 commit f16aabd

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed

src/sections/RuneScapeGuideSection.java

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

1415
import java.util.Arrays;
1516
import java.util.Collections;
1617
import java.util.Random;
17-
import java.util.concurrent.ThreadLocalRandom;
1818
import java.util.stream.Collectors;
1919

2020
public final class RuneScapeGuideSection extends TutorialSection {
21-
22-
2321
private final CachedWidget nameAcceptedWidget = new CachedWidget(w -> w.getMessage().contains("Great!"));
2422
private final CachedWidget nameRejectedWidget = new CachedWidget(w -> w.getMessage().contains("Sorry"));
2523

24+
private final CachedWidget suggestedNameWidget = new CachedWidget(new WidgetActionFilter("Set name"));
25+
2626
private final CachedWidget nameLookupWidget = new CachedWidget(w -> w.getMessage().contains("Look up name"));
2727
private final CachedWidget nameInputWidget = new CachedWidget(w -> w.getMessage().contains("What name would you like to check"));
2828
private final CachedWidget nameSetWidget = new CachedWidget("Set name");
29-
private final CachedWidget nameScreenDetectionWidget = new CachedWidget("Choose display name");
29+
private final CachedWidget nameWindowWidget = new CachedWidget("Choose display name");
3030

3131
private final CachedWidget creationScreenWidget = new CachedWidget("Head");
3232
private final CachedWidget experienceWidget = new CachedWidget("What's your experience with Old School Runescape?");
@@ -47,7 +47,7 @@ public final void onLoop() throws InterruptedException {
4747
case 0:
4848
case 1:
4949
case 2:
50-
if (nameScreenDetectionWidget.get(getWidgets()).isPresent()) {
50+
if (isNameScreenVisible()) {
5151
setDisplayName();
5252
} else if (isCreationScreenVisible()) {
5353
createRandomCharacter();
@@ -87,28 +87,46 @@ private void setDisplayName() {
8787
if (nameAcceptedWidget.get(getWidgets()).isPresent()) {
8888
nameSetWidget.get(getWidgets()).ifPresent(rs2Widget -> {
8989
if (rs2Widget.interact()) {
90-
Sleep.sleepUntil(() -> !nameScreenDetectionWidget.get(getWidgets()).isPresent(), 8000, 600);
90+
Sleep.sleepUntil(() -> !nameWindowWidget.get(getWidgets()).isPresent(), 8000, 600);
9191
}
9292
});
93+
} else if (nameRejectedWidget.get(getWidgets()).isPresent()) {
94+
95+
RS2Widget suggestedWidget = suggestedNameWidget.get(getWidgets()).get();
96+
97+
int rootID = suggestedWidget.getRootId();
98+
int secondLevelID = suggestedWidget.getSecondLevelId();
99+
RS2Widget nameWidget = getWidgets().get(rootID, secondLevelID + random(0, 2));
100+
101+
if (nameWidget.interact()) {
102+
Sleep.sleepUntil(() -> nameAcceptedWidget.get(getWidgets()).isPresent(), 12000, 600);
103+
104+
}
105+
93106
} else if (nameInputWidget.get(getWidgets()).isPresent()
94107
&& nameInputWidget.get(getWidgets()).get().isVisible()
95-
&& getKeyboard().typeString(generateRandomString(7, 12), true)) {
108+
&& getKeyboard().typeString(generateRandomString(4), true)) {
96109

97110
final int configValue = getConfigs().get(1042);
98111

99-
Sleep.sleepUntil(() -> getConfigs().get(1042) != configValue, 8000, 600);
112+
// sending request sleep
113+
Sleep.sleepUntil(() -> getConfigs().get(1042) != configValue, 12000, 600);
114+
115+
//getting result sleep
100116
Sleep.sleepUntil(() -> getConfigs().get(1042) == configValue || nameAcceptedWidget.get(getWidgets()).isPresent(), 8000, 600);
117+
101118
} else if (nameLookupWidget.get(getWidgets()).isPresent()
102119
&& nameLookupWidget.get(getWidgets()).get().interact()) {
103120
Sleep.sleepUntil(() -> nameInputWidget.get(getWidgets()).isPresent() && nameInputWidget.get(getWidgets()).get().isVisible(), 8000, 600);
104121
}
122+
105123
}
106124

107-
private String generateRandomString(int min, int maxLength) {
125+
private String generateRandomString(int maxLength) {
108126
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
109127
+ "abcdefghijklmnopqrstuvwxyz"
110128
+ "0123456789";
111-
return ThreadLocalRandom.current().ints(ThreadLocalRandom.current().nextInt(min, maxLength + 1), 0, chars.length())
129+
return new Random().ints(new Random().nextInt(maxLength) + 1, 0, chars.length())
112130
.mapToObj(i -> "" + chars.charAt(i))
113131
.collect(Collectors.joining());
114132
}
@@ -117,6 +135,10 @@ private boolean isCreationScreenVisible() {
117135
return creationScreenWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent();
118136
}
119137

138+
private boolean isNameScreenVisible() {
139+
return nameWindowWidget.get(getWidgets()).isPresent();
140+
}
141+
120142
private void createRandomCharacter() throws InterruptedException {
121143
if (new Random().nextInt(2) == 1) {
122144
getWidgets().getWidgetContainingText("Female").interact();

0 commit comments

Comments
 (0)