14
14
15
15
import java .util .Arrays ;
16
16
import java .util .Collections ;
17
+ import java .util .Optional ;
17
18
import java .util .Random ;
18
19
import java .util .stream .Collectors ;
19
20
@@ -46,9 +47,9 @@ public final void onLoop() throws InterruptedException {
46
47
setDisplayName ();
47
48
} else if (isCreationScreenVisible ()) {
48
49
createRandomCharacter ();
49
- } else if (experienceWidget .get (getWidgets ()). isPresent ( )) {
50
+ } else if (experienceWidget .isVisible (getWidgets ())) {
50
51
if (getDialogues ().selectOption (random (1 , 3 ))) {
51
- Sleep .sleepUntil (() -> !experienceWidget .get (getWidgets ()). map ( widget -> ! widget . isVisible ()). orElse ( true ), 2000 , 600 );
52
+ Sleep .sleepUntil (() -> !experienceWidget .isVisible (getWidgets ()), 2000 , 600 );
52
53
}
53
54
} else {
54
55
talkToInstructor ();
@@ -81,25 +82,25 @@ private void setDisplayName() {
81
82
switch (configValue ) {
82
83
case 0 :
83
84
case 1 :
84
- if (suggestedNameWidget .get (getWidgets ()). isPresent ( )) {
85
- RS2Widget suggestedWidget = suggestedNameWidget .get ( getWidgets ()). get ();
86
- int rootID = suggestedWidget . getRootId ();
87
- int secondLevelID = suggestedWidget . getSecondLevelId ();
88
- RS2Widget nameWidget = getWidgets (). get ( rootID , secondLevelID + 2 + random ( 0 , 2 ) );
89
- if (nameWidget .interact ()) {
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 ()) {
90
91
Sleep .sleepUntil (() -> getConfigs ().get (configID ) == 4 , 1200 );
91
92
}
92
- } else if (checkNameWidget .get (getWidgets ()). filter ( RS2Widget :: isVisible ). isPresent ( )) {
93
+ } else if (checkNameWidget .isVisible (getWidgets ())) {
93
94
if (getKeyboard ().typeString (generateRandomString (4 ))) {
94
95
Sleep .sleepUntil (() -> getConfigs ().get (configID ) == 2 , 1200 );
95
96
}
96
- } else if (nameLookupWidget .get (getWidgets ()). get (). interact ( "Look up name" )) {
97
+ } else if (nameLookupWidget .interact (getWidgets (), "Look up name" )) {
97
98
Sleep .sleepUntil (() -> getConfigs ().get (configID ) == 1 , 1200 );
98
99
}
99
100
break ;
100
101
case 4 :
101
- if (setNameWidget .get (getWidgets ()). isPresent ( )) {
102
- if (setNameWidget .get (getWidgets ()). get (). interact ( )) {
102
+ if (setNameWidget .isVisible (getWidgets ())) {
103
+ if (setNameWidget .interact (getWidgets ())) {
103
104
Sleep .sleepUntil (() -> getConfigs ().get (configID ) == 21 , 2400 );
104
105
}
105
106
}
@@ -118,7 +119,7 @@ private String generateRandomString(int maxLength) {
118
119
}
119
120
120
121
private boolean isCreationScreenVisible () {
121
- return creationScreenWidget .get (getWidgets ()). filter ( RS2Widget :: isVisible ). isPresent ( );
122
+ return creationScreenWidget .isVisible (getWidgets ());
122
123
}
123
124
124
125
private void createRandomCharacter () throws InterruptedException {
@@ -129,7 +130,9 @@ private void createRandomCharacter() throws InterruptedException {
129
130
getWidgets ().getWidgetContainingText ("Female" ).interact ();
130
131
}
131
132
132
- final RS2Widget [] childWidgets = getWidgets ().getWidgets (creationScreenWidget .get (getWidgets ()).get ().getRootId ());
133
+ int rootID = creationScreenWidget .get (getWidgets ()).get ().getRootId ();
134
+
135
+ final RS2Widget [] childWidgets = getWidgets ().getWidgets (rootID );
133
136
Collections .shuffle (Arrays .asList (childWidgets ));
134
137
135
138
for (final RS2Widget childWidget : childWidgets ) {
0 commit comments