bank plugin: add seed vault
Co-authored-by: TheStonedTurtle <mgoodwin559@gmail.com>
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user