Skip to content

Commit

Permalink
Add EthanApi
Browse files Browse the repository at this point in the history
  • Loading branch information
zeruth committed Dec 7, 2023
1 parent 10d9388 commit 40f9f0b
Show file tree
Hide file tree
Showing 59 changed files with 10,415 additions and 0 deletions.
15 changes: 15 additions & 0 deletions runelite-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,21 @@
<version>3.14.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230227</version>
</dependency>
<dependency>
<groupId>org.roaringbitmap</groupId>
<artifactId>RoaringBitmap</artifactId>
<version>0.9.44</version>
</dependency>
<dependency>
<groupId>org.benf</groupId>
<artifactId>cfr</artifactId>
<version>0.152</version>
</dependency>
</dependencies>

<dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package com.example.EthanApiPlugin.Collections;

import com.example.EthanApiPlugin.Collections.query.ItemQuery;
import com.example.EthanApiPlugin.EthanApiPlugin;
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 {
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 (EthanApiPlugin.itemDefs.get(item.getId()).getPlaceholderTemplateId() == 14401) {
i++;
continue;
}
Bank.bankItems.add(new BankItemWidget(EthanApiPlugin.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 onItemContainerChanged(ItemContainerChanged e) {
// if (e.getContainerId() == 95) {
// int i = 0;
// Bank.bankItems.clear();
// for (Item item : e.getItemContainer().getItems()) {
// try {
// if (item == null) {
// i++;
// continue;
// }
// if (EthanApiPlugin.itemDefs.get(item.getId()).getPlaceholderTemplateId() == 14401) {
// i++;
// continue;
// }
// Bank.bankItems.add(new BankItemWidget(EthanApiPlugin.itemDefs.get(item.getId()).getName(), item.getId(), item.getQuantity(), i));
// } catch (NullPointerException | ExecutionException ex) {
// //todo fix this
// }
// i++;
// }
// }
// }

@Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged) {
if (gameStateChanged.getGameState() == GameState.HOPPING || gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.CONNECTION_LOST) {
Bank.bankItems.clear();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package com.example.EthanApiPlugin.Collections;

import com.example.EthanApiPlugin.Collections.query.ItemQuery;
import net.runelite.api.Client;
import net.runelite.api.GameState;
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.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

public class BankInventory {
static Client client = RuneLite.getInjector().getInstance(Client.class);
static List<Widget> bankInventoryItems = new ArrayList<>();
static int lastUpdateTick = 0;

public static ItemQuery search() {
if (lastUpdateTick < client.getTickCount()) {
BankInventory.bankInventoryItems =
Arrays.stream(client.getWidget(WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER).getDynamicChildren()).filter(Objects::nonNull).filter(x -> x.getItemId() != 6512 && x.getItemId() != -1).collect(Collectors.toList());
lastUpdateTick = client.getTickCount();
}
return new ItemQuery(bankInventoryItems.stream().filter(Objects::nonNull).collect(Collectors.toList()));
}
// @Subscribe
// public void onWidgetLoaded(WidgetLoaded e) {
// if (e.getGroupId() == WidgetID.BANK_INVENTORY_GROUP_ID) {
// try {
// BankInventory.bankInventoryItems =
// Arrays.stream(client.getWidget(WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER).getDynamicChildren()).filter(Objects::nonNull).filter(x -> x.getItemId() != 6512 && x.getItemId() != -1).collect(Collectors.toList());
// } catch (NullPointerException err) {
// BankInventory.bankInventoryItems.clear();
// }
// }
// }

// @Subscribe
// public void onItemContainerChanged(ItemContainerChanged e) {
// if (e.getContainerId() == 93) {
// if (client.getWidget(WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER) == null) {
// BankInventory.bankInventoryItems.clear();
// return;
// }
// try {
// BankInventory.bankInventoryItems =
// Arrays.stream(client.getWidget(WidgetInfo.BANK_INVENTORY_ITEMS_CONTAINER).getDynamicChildren()).filter(Objects::nonNull).filter(x -> x.getItemId() != 6512 && x.getItemId() != -1).collect(Collectors.toList());
// System.out.println("bankInventoryItems: "+bankInventoryItems.size());
// return;
// } catch (NullPointerException err) {
// BankInventory.bankInventoryItems.clear();
// return;
// }
// }
// }

@Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged) {
if (gameStateChanged.getGameState() == GameState.HOPPING || gameStateChanged.getGameState() == GameState.LOGIN_SCREEN || gameStateChanged.getGameState() == GameState.CONNECTION_LOST) {
BankInventory.bankInventoryItems.clear();
}
}
}
Loading

0 comments on commit 40f9f0b

Please sign in to comment.