bank plugin: add seed vault

Co-authored-by: TheStonedTurtle <mgoodwin559@gmail.com>
This commit is contained in:
Adam
2019-07-16 15:30:21 -04:00
committed by Adam
parent 2b2983242f
commit a6fb21bc99
4 changed files with 83 additions and 2 deletions

View File

@@ -60,7 +60,12 @@ public enum InventoryID
/** /**
* Theater of Blood reward chest inventory (Raids 2) * Theater of Blood reward chest inventory (Raids 2)
*/ */
THEATRE_OF_BLOOD_CHEST(612); THEATRE_OF_BLOOD_CHEST(612),
/**
* Seed vault located inside the Farming Guild
*/
SEED_VAULT(626);
private final int id; private final int id;

View File

@@ -141,6 +141,7 @@ public class WidgetID
public static final int BEGINNER_CLUE_MAP_WIZARDS_TOWER = 356; public static final int BEGINNER_CLUE_MAP_WIZARDS_TOWER = 356;
public static final int SEED_BOX_GROUP_ID = 128; public static final int SEED_BOX_GROUP_ID = 128;
public static final int ITEMS_KEPT_ON_DEATH_GROUP_ID = 4; public static final int ITEMS_KEPT_ON_DEATH_GROUP_ID = 4;
public static final int SEED_VAULT_GROUP_ID = 631;
static class WorldMap static class WorldMap
{ {
@@ -820,4 +821,9 @@ public class WidgetID
static final int MAX_ITEMS_KEPT_ON_DEATH = 30; static final int MAX_ITEMS_KEPT_ON_DEATH = 30;
static final int SAFE_ZONE_CONTAINER = 31; static final int SAFE_ZONE_CONTAINER = 31;
} }
static class SeedVault
{
static final int TITLE_CONTAINER = 2;
}
} }

View File

@@ -492,7 +492,9 @@ public enum WidgetInfo
ITEMS_KEPT_INFORMATION_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.INFORMATION_CONTAINER), ITEMS_KEPT_INFORMATION_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.INFORMATION_CONTAINER),
ITEMS_KEPT_SAFE_ZONE_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.SAFE_ZONE_CONTAINER), ITEMS_KEPT_SAFE_ZONE_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.SAFE_ZONE_CONTAINER),
ITEMS_LOST_VALUE(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_VALUE), ITEMS_LOST_VALUE(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_VALUE),
ITEMS_KEPT_MAX(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.MAX_ITEMS_KEPT_ON_DEATH); ITEMS_KEPT_MAX(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.MAX_ITEMS_KEPT_ON_DEATH),
SEED_VAULT_TITLE_CONTAINER(WidgetID.SEED_VAULT_GROUP_ID, WidgetID.SeedVault.TITLE_CONTAINER);
private final int groupId; private final int groupId;
private final int childId; private final int childId;

View File

@@ -37,9 +37,14 @@ import net.runelite.api.Item;
import net.runelite.api.ItemContainer; import net.runelite.api.ItemContainer;
import net.runelite.api.MenuEntry; import net.runelite.api.MenuEntry;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.events.ItemContainerChanged;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuShouldLeftClick; import net.runelite.api.events.MenuShouldLeftClick;
import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.events.WidgetLoaded;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetID;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -70,6 +75,7 @@ public class BankPlugin extends Plugin
private static final String DEPOSIT_WORN = "Deposit worn items"; private static final String DEPOSIT_WORN = "Deposit worn items";
private static final String DEPOSIT_INVENTORY = "Deposit inventory"; private static final String DEPOSIT_INVENTORY = "Deposit inventory";
private static final String DEPOSIT_LOOT = "Deposit loot"; private static final String DEPOSIT_LOOT = "Deposit loot";
private static final String SEED_VAULT_TITLE = "Seed Vault";
@Inject @Inject
private Client client; private Client client;
@@ -86,6 +92,9 @@ public class BankPlugin extends Plugin
@Inject @Inject
private ContainerCalculation bankCalculation; private ContainerCalculation bankCalculation;
@Inject
private ContainerCalculation seedVaultCalculation;
private boolean forceRightClickFlag; private boolean forceRightClickFlag;
@Provides @Provides
@@ -156,6 +165,28 @@ public class BankPlugin extends Plugin
stringStack[stringStackSize - 1] += strCurrentTab; stringStack[stringStackSize - 1] += strCurrentTab;
} }
@Subscribe
public void onWidgetLoaded(WidgetLoaded event)
{
if (event.getGroupId() != WidgetID.SEED_VAULT_GROUP_ID || !config.seedVaultValue())
{
return;
}
updateSeedVaultTotal();
}
@Subscribe
public void onItemContainerChanged(ItemContainerChanged event)
{
if (event.getContainerId() != InventoryID.SEED_VAULT.getId() || !config.seedVaultValue())
{
return;
}
updateSeedVaultTotal();
}
private String createValueText(final ContainerPrices prices) private String createValueText(final ContainerPrices prices)
{ {
final long gePrice = prices.getGePrice(); final long gePrice = prices.getGePrice();
@@ -229,4 +260,41 @@ public class BankPlugin extends Plugin
return items; return items;
} }
private void updateSeedVaultTotal()
{
final Widget titleContainer = client.getWidget(WidgetInfo.SEED_VAULT_TITLE_CONTAINER);
if (titleContainer == null)
{
return;
}
final Widget[] children = titleContainer.getDynamicChildren();
if (children == null || children.length < 2)
{
return;
}
final ContainerPrices prices = seedVaultCalculation.calculate(getSeedVaultItems());
if (prices == null)
{
return;
}
final String titleText = createValueText(prices);
final Widget title = children[1];
title.setText(SEED_VAULT_TITLE + titleText);
}
private Item[] getSeedVaultItems()
{
final ItemContainer itemContainer = client.getItemContainer(InventoryID.SEED_VAULT);
if (itemContainer == null)
{
return null;
}
return itemContainer.getItems();
}
} }