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

Commit 8d73383

Browse files
phantaaaExplv
authored andcommitted
Fixed gielinor section after 02.05.2019 update (#10)
* Fixed gielinor section after 02.05.2019 update
1 parent 408fd47 commit 8d73383

File tree

1 file changed

+33
-45
lines changed

1 file changed

+33
-45
lines changed

src/sections/RuneScapeGuideSection.java

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

15-
import javax.swing.*;
1614
import java.util.Arrays;
1715
import java.util.Collections;
1816
import java.util.Random;
17+
import java.util.concurrent.ThreadLocalRandom;
1918
import java.util.stream.Collectors;
2019

2120
public final class RuneScapeGuideSection extends TutorialSection {
2221

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");
22+
23+
private final CachedWidget nameAcceptedWidget = new CachedWidget(w -> w.getMessage().contains("Great!"));
24+
private final CachedWidget nameRejectedWidget = new CachedWidget(w -> w.getMessage().contains("Sorry"));
25+
26+
private final CachedWidget nameLookupWidget = new CachedWidget(w -> w.getMessage().contains("Look up name"));
27+
private final CachedWidget nameInputWidget = new CachedWidget(w -> w.getMessage().contains("What name would you like to check"));
28+
private final CachedWidget nameSetWidget = new CachedWidget("Set name");
29+
private final CachedWidget nameScreenDetectionWidget = new CachedWidget("Choose display name");
30+
2731
private final CachedWidget creationScreenWidget = new CachedWidget("Head");
2832
private final CachedWidget experienceWidget = new CachedWidget("What's your experience with Old School Runescape?");
2933
private boolean isAudioDisabled;
@@ -43,7 +47,7 @@ public final void onLoop() throws InterruptedException {
4347
case 0:
4448
case 1:
4549
case 2:
46-
if (getConfigs().get(1042) != 21) {
50+
if (nameScreenDetectionWidget.get(getWidgets()).isPresent()) {
4751
setDisplayName();
4852
} else if (isCreationScreenVisible()) {
4953
createRandomCharacter();
@@ -80,56 +84,40 @@ public final void onLoop() throws InterruptedException {
8084
}
8185

8286
private void setDisplayName() {
83-
int configID = 1042;
84-
int configValue = getConfigs().get(configID);
85-
86-
switch (configValue) {
87-
case 0:
88-
case 1:
89-
if (suggestedNameWidget.get(getWidgets()).isPresent()) {
90-
RS2Widget suggestedWidget = suggestedNameWidget.get(getWidgets()).get();
91-
int rootID = suggestedWidget.getRootId();
92-
int secondLevelID = suggestedWidget.getSecondLevelId();
93-
RS2Widget nameWidget = getWidgets().get(rootID, secondLevelID + 2 + random(0, 2));
94-
if (nameWidget.interact()) {
95-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 4, 1200);
96-
}
97-
} else if (checkNameWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent()) {
98-
if (getKeyboard().typeString(generateRandomString(4))) {
99-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 2, 1200);
100-
}
101-
} else if (nameLookupWidget.get(getWidgets()).get().interact("Look up name")) {
102-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 1, 1200);
103-
}
104-
break;
105-
case 4:
106-
if (setNameWidget.get(getWidgets()).isPresent()) {
107-
if (setNameWidget.get(getWidgets()).get().interact()) {
108-
Sleep.sleepUntil(() -> getConfigs().get(configID) == 21, 2400);
109-
}
87+
if (nameAcceptedWidget.get(getWidgets()).isPresent()) {
88+
nameSetWidget.get(getWidgets()).ifPresent(rs2Widget -> {
89+
if (rs2Widget.interact()) {
90+
Sleep.sleepUntil(() -> !nameScreenDetectionWidget.get(getWidgets()).isPresent(), 8000, 600);
11091
}
111-
default:
112-
Sleep.sleepUntil(() -> getConfigs().get(configID) != configValue, 1200);
92+
});
93+
} else if (nameInputWidget.get(getWidgets()).isPresent()
94+
&& nameInputWidget.get(getWidgets()).get().isVisible()
95+
&& getKeyboard().typeString(generateRandomString(7, 12), true)) {
96+
97+
final int configValue = getConfigs().get(1042);
98+
99+
Sleep.sleepUntil(() -> getConfigs().get(1042) != configValue, 8000, 600);
100+
Sleep.sleepUntil(() -> getConfigs().get(1042) == configValue || nameAcceptedWidget.get(getWidgets()).isPresent(), 8000, 600);
101+
} else if (nameLookupWidget.get(getWidgets()).isPresent()
102+
&& nameLookupWidget.get(getWidgets()).get().interact()) {
103+
Sleep.sleepUntil(() -> nameInputWidget.get(getWidgets()).isPresent() && nameInputWidget.get(getWidgets()).get().isVisible(), 8000, 600);
113104
}
114105
}
115106

116-
private String generateRandomString(int maxLength) {
107+
private String generateRandomString(int min, int maxLength) {
117108
String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
118-
+ "abcdefghijklmnopqrstuvwxyz"
119-
+ "0123456789";
120-
return new Random().ints(new Random().nextInt(maxLength) + 1, 0, chars.length())
121-
.mapToObj(i -> "" + chars.charAt(i))
122-
.collect(Collectors.joining());
109+
+ "abcdefghijklmnopqrstuvwxyz"
110+
+ "0123456789";
111+
return ThreadLocalRandom.current().ints(ThreadLocalRandom.current().nextInt(min, maxLength + 1), 0, chars.length())
112+
.mapToObj(i -> "" + chars.charAt(i))
113+
.collect(Collectors.joining());
123114
}
124115

125116
private boolean isCreationScreenVisible() {
126117
return creationScreenWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent();
127118
}
128119

129120
private void createRandomCharacter() throws InterruptedException {
130-
// letting all the widgets show up
131-
sleep(2000);
132-
133121
if (new Random().nextInt(2) == 1) {
134122
getWidgets().getWidgetContainingText("Female").interact();
135123
}

0 commit comments

Comments
 (0)