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

Commit de7440c

Browse files
author
Explv
committed
1. Close help overlay in bank if it's visible.
2. Prioritise depositing items in ItemReqBanking to avoid scenario where the script is trying to withdraw an item req, but the inventory is full. 3. Prioritise banks over deposit boxes in Banking, to avoid scenario where the script uses a deposit box to deposit all items, but then goes to the bank to withdraw items. v3.2.4
1 parent 09af946 commit de7440c

File tree

4 files changed

+96
-32
lines changed

4 files changed

+96
-32
lines changed

resources-archive.zip

0 Bytes
Binary file not shown.

src/main/java/activities/banking/Banking.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
import org.osbot.rs07.api.map.Area;
44
import util.Executable;
55
import util.Sleep;
6+
import util.widget.CachedWidget;
7+
import util.widget.filters.WidgetActionFilter;
68

79
import java.util.stream.Stream;
810

911
public abstract class Banking extends Executable {
1012

1113
private static final Area[] ALL_BANK_AND_DEPOSIT_BOX_AREAS = Stream.concat(Stream.of(Bank.AREAS), Stream.of(DepositBox.AREAS)).toArray(Area[]::new);
1214

15+
private static final CachedWidget CONTINUE_BANK_INSTRUCTIONS_WIDGET = new CachedWidget(new WidgetActionFilter("Continue"));
16+
1317
private final boolean useDepositBoxes;
1418

1519
protected enum BankType {
@@ -34,6 +38,8 @@ public void run() throws InterruptedException {
3438
walkToBank();
3539
} else if (!isBankOpen()) {
3640
currentBankType = openBank();
41+
} else if (CONTINUE_BANK_INSTRUCTIONS_WIDGET.isVisible(getWidgets())) {
42+
CONTINUE_BANK_INSTRUCTIONS_WIDGET.interact(getWidgets(), "Continue");
3743
} else {
3844
succeeded = bank(currentBankType);
3945
}
@@ -54,24 +60,33 @@ private boolean walkToBank() {
5460
}
5561

5662
boolean isBankOpen() {
57-
if (useDepositBoxes) {
63+
if (getBank() != null) {
64+
return getBank().isOpen();
65+
}
66+
67+
if (useDepositBoxes && getDepositBox() != null) {
5868
return getDepositBox().isOpen();
5969
}
60-
return getBank().isOpen();
70+
71+
return false;
6172
}
6273

63-
BankType openBank() throws InterruptedException {
74+
private BankType openBank() throws InterruptedException {
75+
if (getBank() != null) {
76+
if (getBank().open()) {
77+
Sleep.sleepUntil(() -> getBank().isOpen(), 5000);
78+
}
79+
return BankType.BANK;
80+
}
81+
6482
if (useDepositBoxes && getDepositBox() != null) {
6583
if (getDepositBox().open()) {
6684
Sleep.sleepUntil(() -> getDepositBox().isOpen(), 5000);
6785
}
6886
return BankType.DEPOSIT_BOX;
6987
}
7088

71-
if (getBank().open()) {
72-
Sleep.sleepUntil(() -> getBank().isOpen(), 5000);
73-
}
74-
return BankType.BANK;
89+
throw new IllegalStateException("Cannot open bank, no bank or deposit box found.");
7590
}
7691

7792
/**

src/main/java/activities/banking/ItemReqBanking.java

Lines changed: 73 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,60 @@ public int execute() throws InterruptedException {
119119
private void getItemRequirements(final ItemReq... itemReqs) {
120120
final List<ItemReq> itemReqList = Arrays.asList(itemReqs);
121121

122-
List<ItemReq> equipableItemReqs = itemReqList.stream().filter(ItemReq::isEquipable).collect(Collectors.toList());
123-
Filter<Item> equipableItemReqFilter = item -> equipableItemReqs.stream().anyMatch(req -> req.isRequirementItem(item));
122+
final List<ItemReq> equipableItemReqs = itemReqList.stream().filter(ItemReq::isEquipable).collect(Collectors.toList());
123+
final Filter<Item> equipableItemReqFilter = item -> equipableItemReqs.stream().anyMatch(req -> req.isRequirementItem(item));
124+
final List<ItemReq> nonEquipableItemReqsList = itemReqList.stream().filter(req -> !req.isEquipable()).collect(Collectors.toList());
125+
126+
// First we deposit any items that are not a requirement
127+
execute(new Event() {
128+
@Override
129+
public int execute() throws InterruptedException {
130+
if (!getInventory().contains(item -> !itemReqFilter.match(item))) {
131+
setFinished();
132+
return 0;
133+
}
134+
135+
if (!getBank().isOpen()) {
136+
getBank().open();
137+
} else {
138+
getBank().depositAllExcept(itemReqFilter);
139+
}
140+
return 600;
141+
}
142+
});
143+
144+
// Then we deposit any excess item reqs we have
145+
execute(new Event() {
146+
Queue<ItemReq> nonEquipableItemReqs = new LinkedList<>(nonEquipableItemReqsList);
147+
148+
@Override
149+
public int execute() throws InterruptedException {
150+
if (nonEquipableItemReqs.isEmpty()) {
151+
setFinished();
152+
return 0;
153+
}
154+
155+
if (!getBank().isOpen()) {
156+
getBank().open();
157+
} else {
158+
ItemReq itemReq = nonEquipableItemReqs.peek();
159+
160+
int targetAmount = reqTargetAmountMap.get(itemReq);
161+
long amountOnPlayer = itemReq.getAmount(getInventory(), getEquipment());
162+
163+
if (amountOnPlayer > targetAmount && targetAmount != ItemReq.QUANTITY_ALL) {
164+
depositExcess(itemReq);
165+
} else {
166+
nonEquipableItemReqs.poll();
167+
}
168+
}
169+
return 600;
170+
}
171+
});
172+
124173

125174
if (!equipableItemReqs.isEmpty()) {
126-
// First we want to withdraw any equipable item reqs
175+
// Now we want to withdraw any equipable item reqs
127176
Event withdrawEquipables = execute(new Event() {
128177
Queue<ItemReq> equipableItemReqQueue = new LinkedList<>(equipableItemReqs);
129178

@@ -132,7 +181,10 @@ private void getItemRequirements(final ItemReq... itemReqs) {
132181
public int execute() throws InterruptedException {
133182
if (equipableItemReqQueue.isEmpty()) {
134183
setFinished();
135-
} else if (!getBank().isOpen()) {
184+
return 0;
185+
}
186+
187+
if (!getBank().isOpen()) {
136188
getBank().open();
137189
} else if (getInventory().contains(item -> !equipableItemReqFilter.match(item))) {
138190
getBank().depositAllExcept(equipableItemReqFilter);
@@ -180,38 +232,35 @@ public int execute() throws InterruptedException {
180232
});
181233
}
182234

183-
final List<ItemReq> nonEquipableItemReqsList = itemReqList.stream().filter(req -> !req.isEquipable()).collect(Collectors.toList());
184-
185235
// Finally we want to withdraw any remaining item reqs
186236
Event withdrawNonEquipableEvent = execute(new Event() {
187237
Queue<ItemReq> nonEquipableItemReqs = new LinkedList<>(nonEquipableItemReqsList);
188238

189239
@Override
190240
public int execute() throws InterruptedException {
241+
if (nonEquipableItemReqs.isEmpty()) {
242+
setFinished();
243+
return 0;
244+
}
245+
191246
if (!getBank().isOpen()) {
192247
getBank().open();
193-
} else if (getInventory().contains(item -> !itemReqFilter.match(item))) {
194-
getBank().depositAllExcept(itemReqFilter);
195-
} else if (nonEquipableItemReqs.isEmpty()) {
196-
setFinished();
197-
} else {
198-
ItemReq itemReq = nonEquipableItemReqs.peek();
248+
return 0;
249+
}
199250

200-
int targetAmount = reqTargetAmountMap.get(itemReq);
201-
long amountOnPlayer = itemReq.getAmount(getInventory(), getEquipment());
251+
ItemReq itemReq = nonEquipableItemReqs.peek();
202252

203-
if (amountOnPlayer > targetAmount && targetAmount != ItemReq.QUANTITY_ALL) {
204-
depositExcess(itemReq);
205-
} else if (!itemReq.hasRequirement(getInventory(), getEquipment())) {
206-
if (!withdrawItemReq(itemReq)) {
207-
setFailed();
208-
}
209-
} else if (amountOnPlayer < targetAmount && getBank().contains(itemReq.getName())) {
210-
withdrawItemReq(itemReq);
211-
} else {
212-
nonEquipableItemReqs.poll();
253+
int targetAmount = reqTargetAmountMap.get(itemReq);
254+
long amountOnPlayer = itemReq.getAmount(getInventory(), getEquipment());
255+
256+
if (amountOnPlayer < targetAmount) {
257+
if (!withdrawItemReq(itemReq)) {
258+
setFailed();
213259
}
260+
} else {
261+
nonEquipableItemReqs.poll();
214262
}
263+
215264
return 600;
216265
}
217266
});

src/main/java/script/AIO.java

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

31-
public static final String VERSION = "v3.2.3";
31+
public static final String VERSION = "v3.2.4";
3232

3333
private Gui gui;
3434
private Paint paint;

0 commit comments

Comments
 (0)