Files
k4rli-plugins/src/main/java/ee/futur/baseapi/collections/Bank.java
2025-10-12 22:41:10 +03:00

82 lines
3.1 KiB
Java

package ee.futur.baseapi.collections;
import ee.futur.baseapi.collections.query.ItemQuery;
import ee.futur.baseapi.BaseApiPlugin;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.InventoryID;
import net.runelite.api.Item;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.RuneLite;
import net.runelite.client.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;
public class Bank {
private static final int WITHDRAW_MODE = 3958;
static Client client = RuneLite.getInjector().getInstance(Client.class);
static List<Widget> bankItems = new ArrayList<>();
boolean bankUpdate = true;
static int lastUpdateTick = 0;
public static ItemQuery search() {
if (lastUpdateTick < client.getTickCount()) {
Bank.bankItems.clear();
int i = 0;
if (client.getItemContainer(InventoryID.BANK) == null) {
return new ItemQuery(new ArrayList<>());
}
for (Item item : client.getItemContainer(InventoryID.BANK).getItems()) {
try {
if (item == null) {
i++;
continue;
}
if (BaseApiPlugin.itemDefs.get(item.getId()).getPlaceholderTemplateId() == 14401) {
i++;
continue;
}
Bank.bankItems.add(new BankItemWidget(BaseApiPlugin.itemDefs.get(item.getId()).getName(), item.getId(), item.getQuantity(), i));
} catch (NullPointerException | ExecutionException ex) {
//todo fix this
}
i++;
}
lastUpdateTick = client.getTickCount();
}
return new ItemQuery(bankItems.stream().filter(Objects::nonNull).collect(Collectors.toList()));
}
public static boolean isOpen() {
return client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER) != null && !client.getWidget(WidgetInfo.BANK_ITEM_CONTAINER).isHidden();
}
@Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged) {
if (gameStateChanged.getGameState() == GameState.HOPPING || gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.CONNECTION_LOST) {
Bank.bankItems.clear();
}
}
public static boolean isNotedMode() {
return client.getVarbitValue(WITHDRAW_MODE) == 1;
}
public static void setWithdrawMode(boolean noted) {
if (noted && !isNotedMode()) {
//MousePackets.queueClickPacket();
//WidgetPackets.queueWidgetActionPacket(1, 786458, -1, -1);
} else if (!noted && isNotedMode()) {
//MousePackets.queueClickPacket();
//WidgetPackets.queueWidgetActionPacket(1, 786456, -1, -1);
}
}
}