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

Commit 4978886

Browse files
ExplvExplv
authored andcommitted
- Refactoring uses of CachedWidget
- Added docs to CachedWidget - Added getRelative function to CachedWidget
1 parent 81e974a commit 4978886

File tree

11 files changed

+217
-112
lines changed

11 files changed

+217
-112
lines changed

AIO/src/org/aio/activities/skills/crafting/CraftingActivity.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,8 @@ private void makeJewellery() {
111111
if (getWidgets().getWidgetContainingText("What would you like to make?") != null) {
112112
if (jewelleryWidget == null) {
113113
jewelleryWidget = getJewelleryWidget();
114-
} else {
115-
jewelleryWidget.get(getWidgets()).ifPresent(widget -> {
116-
if (widget.interact("Make-All")) {
117-
FINISHED_CRAFTING_SLEEP.sleep();
118-
}
119-
});
114+
} else if (jewelleryWidget.interact(getWidgets(), "Make-All")) {
115+
FINISHED_CRAFTING_SLEEP.sleep();
120116
}
121117
} else if (!craftingItem.itemReqs[1].toString().equals(getInventory().getSelectedItemName())) {
122118
getInventory().getItem(craftingItem.itemReqs[1].toString()).interact("Use");

AIO/src/org/aio/activities/tutorial_island/BankSection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ private boolean openDoorAtPosition(final Position position) {
107107
}
108108

109109
private void openAccountManagementTab() {
110-
if ( accountManagementWidget.get(getWidgets()).isPresent() && accountManagementWidget.get(getWidgets()).get().interact()) {
110+
if (accountManagementWidget.isVisible(getWidgets()) && accountManagementWidget.interact(getWidgets())) {
111111
Sleep.sleepUntil(() -> getProgress() == 532, 5000, 600);
112112
}
113113
}

AIO/src/org/aio/activities/tutorial_island/FightingSection.java

Lines changed: 63 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.aio.activities.tutorial_island;
22

3-
import org.aio.util.widget.CachedWidget;
43
import org.aio.util.Sleep;
4+
import org.aio.util.widget.CachedWidget;
55
import org.aio.util.widget.filters.WidgetActionFilter;
66
import org.osbot.rs07.api.map.Area;
77
import org.osbot.rs07.api.model.NPC;
@@ -28,71 +28,69 @@ public final void onLoop() throws InterruptedException {
2828
}
2929

3030
switch (getProgress()) {
31-
case 370:
32-
talkToInstructor();
33-
break;
34-
case 390:
35-
getTabs().open(Tab.EQUIPMENT);
36-
break;
37-
case 400:
38-
VIEW_EQUIPMENT_STATS_WIDGET.get(getWidgets()).ifPresent(widget -> {
39-
if (widget.interact()) {
40-
Sleep.sleepUntil(() -> getProgress() != 400, 3000, 600);
41-
}
42-
});
43-
break;
44-
case 405:
45-
wieldItem("Bronze dagger");
46-
break;
47-
case 410:
48-
talkToInstructor();
49-
break;
50-
case 420:
51-
if (!getEquipment().isWearingItem(EquipmentSlot.WEAPON, "Bronze sword")) {
52-
wieldItem("Bronze sword");
53-
} else if (!getEquipment().isWearingItem(EquipmentSlot.SHIELD, "Wooden shield")) {
54-
wieldItem("Wooden shield");
55-
}
56-
break;
57-
case 430:
58-
getTabs().open(Tab.ATTACK);
59-
break;
60-
case 440:
31+
case 370:
32+
talkToInstructor();
33+
break;
34+
case 390:
35+
getTabs().open(Tab.EQUIPMENT);
36+
break;
37+
case 400:
38+
if (VIEW_EQUIPMENT_STATS_WIDGET.interact(getWidgets())) {
39+
Sleep.sleepUntil(() -> getProgress() != 400, 3000, 600);
40+
}
41+
break;
42+
case 405:
43+
wieldItem("Bronze dagger");
44+
break;
45+
case 410:
46+
talkToInstructor();
47+
break;
48+
case 420:
49+
if (!getEquipment().isWearingItem(EquipmentSlot.WEAPON, "Bronze sword")) {
50+
wieldItem("Bronze sword");
51+
} else if (!getEquipment().isWearingItem(EquipmentSlot.SHIELD, "Wooden shield")) {
52+
wieldItem("Wooden shield");
53+
}
54+
break;
55+
case 430:
56+
getTabs().open(Tab.ATTACK);
57+
break;
58+
case 440:
59+
enterRatCage();
60+
break;
61+
case 450:
62+
case 460:
63+
if (!inRatCage()) {
6164
enterRatCage();
62-
break;
63-
case 450:
64-
case 460:
65-
if (!inRatCage()) {
66-
enterRatCage();
67-
} else if (!isAttackingRat()) {
68-
attackRat();
69-
}
70-
break;
71-
case 470:
72-
if (inRatCage()) {
73-
leaveRatCage();
74-
} else {
75-
talkToInstructor();
76-
}
77-
break;
78-
case 480:
79-
case 490:
80-
if (!getEquipment().isWearingItem(EquipmentSlot.WEAPON, "Shortbow")) {
81-
wieldItem("Shortbow");
82-
} else if (!getEquipment().isWearingItem(EquipmentSlot.ARROWS, "Bronze arrow")) {
83-
wieldItem("Bronze arrow");
84-
} else if (!isAttackingRat()) {
85-
attackRat();
86-
}
87-
break;
88-
case 500:
89-
if (!LADDER_AREA.contains(myPosition())) {
90-
getWalking().walk(LADDER_AREA);
91-
} else if (getObjects().closest("Ladder").interact("Climb-up")) {
92-
Sleep.sleepUntil(() -> !LADDER_AREA.contains(myPosition()), 5000, 600);
93-
}
94-
break;
95-
}
65+
} else if (!isAttackingRat()) {
66+
attackRat();
67+
}
68+
break;
69+
case 470:
70+
if (inRatCage()) {
71+
leaveRatCage();
72+
} else {
73+
talkToInstructor();
74+
}
75+
break;
76+
case 480:
77+
case 490:
78+
if (!getEquipment().isWearingItem(EquipmentSlot.WEAPON, "Shortbow")) {
79+
wieldItem("Shortbow");
80+
} else if (!getEquipment().isWearingItem(EquipmentSlot.ARROWS, "Bronze arrow")) {
81+
wieldItem("Bronze arrow");
82+
} else if (!isAttackingRat()) {
83+
attackRat();
84+
}
85+
break;
86+
case 500:
87+
if (!LADDER_AREA.contains(myPosition())) {
88+
getWalking().walk(LADDER_AREA);
89+
} else if (getObjects().closest("Ladder").interact("Climb-up")) {
90+
Sleep.sleepUntil(() -> !LADDER_AREA.contains(myPosition()), 5000, 600);
91+
}
92+
break;
93+
}
9694
}
9795

9896
private boolean inRatCage() {

AIO/src/org/aio/activities/tutorial_island/RuneScapeGuideSection.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import java.util.Arrays;
1616
import java.util.Collections;
17+
import java.util.Optional;
1718
import java.util.Random;
1819
import java.util.stream.Collectors;
1920

@@ -46,9 +47,9 @@ public final void onLoop() throws InterruptedException {
4647
setDisplayName();
4748
} else if (isCreationScreenVisible()) {
4849
createRandomCharacter();
49-
} else if (experienceWidget.get(getWidgets()).isPresent()) {
50+
} else if (experienceWidget.isVisible(getWidgets())) {
5051
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);
5253
}
5354
} else {
5455
talkToInstructor();
@@ -81,25 +82,25 @@ private void setDisplayName() {
8182
switch (configValue) {
8283
case 0:
8384
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()) {
9091
Sleep.sleepUntil(() -> getConfigs().get(configID) == 4, 1200);
9192
}
92-
} else if (checkNameWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent()) {
93+
} else if (checkNameWidget.isVisible(getWidgets())) {
9394
if (getKeyboard().typeString(generateRandomString(4))) {
9495
Sleep.sleepUntil(() -> getConfigs().get(configID) == 2, 1200);
9596
}
96-
} else if (nameLookupWidget.get(getWidgets()).get().interact("Look up name")) {
97+
} else if (nameLookupWidget.interact(getWidgets(), "Look up name")) {
9798
Sleep.sleepUntil(() -> getConfigs().get(configID) == 1, 1200);
9899
}
99100
break;
100101
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())) {
103104
Sleep.sleepUntil(() -> getConfigs().get(configID) == 21, 2400);
104105
}
105106
}
@@ -118,7 +119,7 @@ private String generateRandomString(int maxLength) {
118119
}
119120

120121
private boolean isCreationScreenVisible() {
121-
return creationScreenWidget.get(getWidgets()).filter(RS2Widget::isVisible).isPresent();
122+
return creationScreenWidget.isVisible(getWidgets());
122123
}
123124

124125
private void createRandomCharacter() throws InterruptedException {
@@ -129,7 +130,9 @@ private void createRandomCharacter() throws InterruptedException {
129130
getWidgets().getWidgetContainingText("Female").interact();
130131
}
131132

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);
133136
Collections.shuffle(Arrays.asList(childWidgets));
134137

135138
for (final RS2Widget childWidget : childWidgets) {

AIO/src/org/aio/script/AIO.java

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

32-
static final String VERSION = "v2.0.0";
32+
static final String VERSION = "v2.0.1";
3333

3434
private Gui gui;
3535
private Paint paint;

AIO/src/org/aio/util/Executable.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
import org.osbot.rs07.script.MethodProvider;
44

5+
/**
6+
* This class is used throughout the script, it is designed as a replacement for the
7+
* OSBot Event class. Unlike the OSBot Event class, this will not block the Script thread.
8+
*
9+
* This means that unlike the OSBot Event class, you are able to have nested Executables
10+
*/
511
public abstract class Executable extends MethodProvider {
612

713
private boolean failed;

AIO/src/org/aio/util/MakeAllInterface.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public int execute() throws InterruptedException {
4848
}
4949

5050
public boolean isMakeAllScreenOpen() {
51-
return titleWidget.get(getWidgets()).map(RS2Widget::isVisible).isPresent();
51+
return titleWidget.isVisible(getWidgets());
5252
}
5353

5454
private int getItemOptionNumber() {

AIO/src/org/aio/util/event/DisableAudioEvent.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ public final int execute() throws InterruptedException {
2222
setFailed();
2323
} else if (getTabs().getOpen() != Tab.SETTINGS) {
2424
getTabs().open(Tab.SETTINGS);
25-
} else if (!musicVolumeWidget.get(getWidgets()).isPresent()) {
26-
soundSettingsWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
25+
} else if (!musicVolumeWidget.isVisible(getWidgets())) {
26+
soundSettingsWidget.interact(getWidgets());
2727
} else if (!isVolumeDisabled(musicVolumeConfig)) {
28-
musicVolumeWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
28+
musicVolumeWidget.interact(getWidgets());
2929
} else if (!isVolumeDisabled(soundEffectVolumeConfig)) {
30-
soundEffectVolumeWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
30+
soundEffectVolumeWidget.interact(getWidgets());
3131
} else if (!isVolumeDisabled(areaSoundEffectVolumeConfig)) {
32-
areaSoundEffectVolumeWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
32+
areaSoundEffectVolumeWidget.interact(getWidgets());
3333
} else {
3434
setFinished();
3535
}

AIO/src/org/aio/util/event/EnableFixedModeEvent.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ public int execute() throws InterruptedException {
2626
setFailed();
2727
} else if (getTabs().getOpen() != Tab.SETTINGS) {
2828
getTabs().open(Tab.SETTINGS);
29-
} else if (!fixedModeWidget.get(getWidgets()).isPresent()) {
30-
displaySettingsWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
31-
} else if (fixedModeWidget.get(getWidgets()).get().interact("Fixed mode")) {
29+
} else if (!fixedModeWidget.isVisible(getWidgets())) {
30+
displaySettingsWidget.interact(getWidgets());
31+
} else if (fixedModeWidget.interact(getWidgets(), "Fixed mode")) {
3232
Sleep.sleepUntil(() -> isFixedModeEnabled(this), 3000);
3333
}
3434
return 200;

AIO/src/org/aio/util/event/ToggleRoofsHiddenEvent.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ public final int execute() throws InterruptedException {
2323
setFailed();
2424
} else if (getTabs().getOpen() != Tab.SETTINGS) {
2525
getTabs().open(Tab.SETTINGS);
26-
} else if (!advancedOptionsWidget.get(getWidgets()).isPresent()) {
27-
displaySettingsWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
28-
} else if (!toggleRoofHiddenWidget.get(getWidgets()).isPresent()) {
29-
advancedOptionsWidget.get(getWidgets()).get().interact();
30-
} else if (!toggledRoofs && toggleRoofHiddenWidget.get(getWidgets()).get().interact()) {
26+
} else if (!advancedOptionsWidget.isVisible(getWidgets())) {
27+
displaySettingsWidget.interact(getWidgets());
28+
} else if (!toggleRoofHiddenWidget.isVisible(getWidgets())) {
29+
advancedOptionsWidget.interact(getWidgets());
30+
} else if (!toggledRoofs && toggleRoofHiddenWidget.interact(getWidgets())) {
3131
toggledRoofs = true;
3232
}
3333
return 200;

0 commit comments

Comments
 (0)