diff --git a/cache-client/pom.xml b/cache-client/pom.xml
index 5dd6604884..9567f997d3 100644
--- a/cache-client/pom.xml
+++ b/cache-client/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
cache-client
diff --git a/cache-updater/pom.xml b/cache-updater/pom.xml
index 4ca01fd810..ebfc582081 100644
--- a/cache-updater/pom.xml
+++ b/cache-updater/pom.xml
@@ -28,7 +28,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
Cache Updater
diff --git a/cache/pom.xml b/cache/pom.xml
index db3f69589a..360b86490f 100644
--- a/cache/pom.xml
+++ b/cache/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
cache
diff --git a/deobfuscator/pom.xml b/deobfuscator/pom.xml
index 0bcbae5567..596175b71a 100644
--- a/deobfuscator/pom.xml
+++ b/deobfuscator/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
deobfuscator
diff --git a/http-api/pom.xml b/http-api/pom.xml
index b797107a20..b23c17e47d 100644
--- a/http-api/pom.xml
+++ b/http-api/pom.xml
@@ -28,7 +28,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
Web API
diff --git a/http-service/pom.xml b/http-service/pom.xml
index 64b43aa8c8..c44c3b93df 100644
--- a/http-service/pom.xml
+++ b/http-service/pom.xml
@@ -28,7 +28,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
Web Service
diff --git a/injected-client/pom.xml b/injected-client/pom.xml
index 02899fa99b..d630212bf6 100644
--- a/injected-client/pom.xml
+++ b/injected-client/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
injected-client
diff --git a/injector-plugin/pom.xml b/injector-plugin/pom.xml
index 7609116638..f733c71b9b 100644
--- a/injector-plugin/pom.xml
+++ b/injector-plugin/pom.xml
@@ -30,7 +30,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
net.runelite.rs
diff --git a/pom.xml b/pom.xml
index d3b2cc240e..95388e2e00 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
pom
RuneLite
@@ -63,6 +63,7 @@
true
true
true
+
181
diff --git a/protocol-api/pom.xml b/protocol-api/pom.xml
index ea06134acf..bc1b85d92e 100644
--- a/protocol-api/pom.xml
+++ b/protocol-api/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
protocol-api
diff --git a/protocol/pom.xml b/protocol/pom.xml
index 9099a76c3f..08fa20e43d 100644
--- a/protocol/pom.xml
+++ b/protocol/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
protocol
diff --git a/runelite-api/pom.xml b/runelite-api/pom.xml
index bf4f654bb7..f5fa3a34bc 100644
--- a/runelite-api/pom.xml
+++ b/runelite-api/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
runelite-api
diff --git a/runelite-api/src/main/java/net/runelite/api/InventoryID.java b/runelite-api/src/main/java/net/runelite/api/InventoryID.java
index ec170bbc2e..8fc1d4a3b9 100644
--- a/runelite-api/src/main/java/net/runelite/api/InventoryID.java
+++ b/runelite-api/src/main/java/net/runelite/api/InventoryID.java
@@ -64,7 +64,12 @@ public enum InventoryID
/**
* 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;
diff --git a/runelite-api/src/main/java/net/runelite/api/ItemID.java b/runelite-api/src/main/java/net/runelite/api/ItemID.java
index 3624f65804..44e30cfc78 100644
--- a/runelite-api/src/main/java/net/runelite/api/ItemID.java
+++ b/runelite-api/src/main/java/net/runelite/api/ItemID.java
@@ -10837,5 +10837,69 @@ public final class ItemID
public static final int MASK_OF_RANUL = 23522;
public static final int JAR_OF_EYES = 23525;
public static final int SARACHNIS_CUDGEL = 23528;
+ public static final int COOKED_KARAMBWAN_23533 = 23533;
+ public static final int SUPER_COMBAT_POTION4_23543 = 23543;
+ public static final int SUPER_COMBAT_POTION3_23545 = 23545;
+ public static final int SUPER_COMBAT_POTION2_23547 = 23547;
+ public static final int SUPER_COMBAT_POTION1_23549 = 23549;
+ public static final int RANGING_POTION4_23551 = 23551;
+ public static final int RANGING_POTION3_23553 = 23553;
+ public static final int RANGING_POTION2_23555 = 23555;
+ public static final int RANGING_POTION1_23557 = 23557;
+ public static final int SANFEW_SERUM4_23559 = 23559;
+ public static final int SANFEW_SERUM3_23561 = 23561;
+ public static final int SANFEW_SERUM2_23563 = 23563;
+ public static final int SANFEW_SERUM1_23565 = 23565;
+ public static final int SUPER_RESTORE4_23567 = 23567;
+ public static final int SUPER_RESTORE3_23569 = 23569;
+ public static final int SUPER_RESTORE2_23571 = 23571;
+ public static final int SUPER_RESTORE1_23573 = 23573;
+ public static final int SARADOMIN_BREW4_23575 = 23575;
+ public static final int SARADOMIN_BREW3_23577 = 23577;
+ public static final int SARADOMIN_BREW2_23579 = 23579;
+ public static final int SARADOMIN_BREW1_23581 = 23581;
+ public static final int STAMINA_POTION4_23583 = 23583;
+ public static final int STAMINA_POTION3_23585 = 23585;
+ public static final int STAMINA_POTION2_23587 = 23587;
+ public static final int STAMINA_POTION1_23589 = 23589;
+ public static final int HELM_OF_NEITIZNOT_23591 = 23591;
+ public static final int BARROWS_GLOVES_23593 = 23593;
+ public static final int BERSERKER_RING_23595 = 23595;
+ public static final int DRAGON_DEFENDER_23597 = 23597;
+ public static final int SPIRIT_SHIELD_23599 = 23599;
+ public static final int RUNE_CROSSBOW_23601 = 23601;
+ public static final int IMBUED_GUTHIX_CAPE_23603 = 23603;
+ public static final int IMBUED_ZAMORAK_CAPE_23605 = 23605;
+ public static final int IMBUED_SARADOMIN_CAPE_23607 = 23607;
+ public static final int AVAS_ACCUMULATOR_23609 = 23609;
+ public static final int ARMADYL_CROSSBOW_23611 = 23611;
+ public static final int STAFF_OF_THE_DEAD_23613 = 23613;
+ public static final int VESTAS_LONGSWORD_23615 = 23615;
+ public static final int ZURIELS_STAFF_23617 = 23617;
+ public static final int MORRIGANS_JAVELIN_23619 = 23619;
+ public static final int STATIUSS_WARHAMMER_23620 = 23620;
+ public static final int INFERNAL_CAPE_23622 = 23622;
+ public static final int SEERS_RING_I_23624 = 23624;
+ public static final int KODAI_WAND_23626 = 23626;
+ public static final int GHRAZI_RAPIER_23628 = 23628;
+ public static final int HEAVY_BALLISTA_23630 = 23630;
+ public static final int KARILS_LEATHERTOP_23632 = 23632;
+ public static final int DHAROKS_PLATELEGS_23633 = 23633;
+ public static final int TORAGS_PLATELEGS_23634 = 23634;
+ public static final int VERACS_PLATESKIRT_23635 = 23635;
+ public static final int VERACS_HELM_23636 = 23636;
+ public static final int TORAGS_HELM_23637 = 23637;
+ public static final int GUTHANS_HELM_23638 = 23638;
+ public static final int DHAROKS_HELM_23639 = 23639;
+ public static final int AMULET_OF_FURY_23640 = 23640;
+ public static final int BLESSED_SPIRIT_SHIELD_23642 = 23642;
+ public static final int ETERNAL_BOOTS_23644 = 23644;
+ public static final int BANDOS_TASSETS_23646 = 23646;
+ public static final int DRAGON_JAVELIN_23648 = 23648;
+ public static final int DIAMOND_BOLTS_E_23649 = 23649;
+ public static final int RUNE_POUCH_23650 = 23650;
+ public static final int MAGES_BOOK_23652 = 23652;
+ public static final int AHRIMS_STAFF_23653 = 23653;
+ public static final int OCCULT_NECKLACE_23654 = 23654;
/* This file is automatically generated. Do not edit. */
}
diff --git a/runelite-api/src/main/java/net/runelite/api/NpcID.java b/runelite-api/src/main/java/net/runelite/api/NpcID.java
index e23906bb98..72ae50b468 100644
--- a/runelite-api/src/main/java/net/runelite/api/NpcID.java
+++ b/runelite-api/src/main/java/net/runelite/api/NpcID.java
@@ -7882,5 +7882,6 @@ public final class NpcID
public static final int SARACHNIS = 8713;
public static final int SPAWN_OF_SARACHNIS = 8714;
public static final int SPAWN_OF_SARACHNIS_8715 = 8715;
+ public static final int JUSTINE = 8721;
/* This file is automatically generated. Do not edit. */
}
diff --git a/runelite-api/src/main/java/net/runelite/api/NullItemID.java b/runelite-api/src/main/java/net/runelite/api/NullItemID.java
index d2d9315362..20d084d40d 100644
--- a/runelite-api/src/main/java/net/runelite/api/NullItemID.java
+++ b/runelite-api/src/main/java/net/runelite/api/NullItemID.java
@@ -12483,5 +12483,65 @@ public final class NullItemID
public static final int NULL_23527 = 23527;
public static final int NULL_23529 = 23529;
public static final int NULL_23530 = 23530;
+ public static final int NULL_23531 = 23531;
+ public static final int NULL_23532 = 23532;
+ public static final int NULL_23534 = 23534;
+ public static final int NULL_23535 = 23535;
+ public static final int NULL_23536 = 23536;
+ public static final int NULL_23537 = 23537;
+ public static final int NULL_23538 = 23538;
+ public static final int NULL_23539 = 23539;
+ public static final int NULL_23540 = 23540;
+ public static final int NULL_23541 = 23541;
+ public static final int NULL_23542 = 23542;
+ public static final int NULL_23544 = 23544;
+ public static final int NULL_23546 = 23546;
+ public static final int NULL_23548 = 23548;
+ public static final int NULL_23550 = 23550;
+ public static final int NULL_23552 = 23552;
+ public static final int NULL_23554 = 23554;
+ public static final int NULL_23556 = 23556;
+ public static final int NULL_23558 = 23558;
+ public static final int NULL_23560 = 23560;
+ public static final int NULL_23562 = 23562;
+ public static final int NULL_23564 = 23564;
+ public static final int NULL_23566 = 23566;
+ public static final int NULL_23568 = 23568;
+ public static final int NULL_23570 = 23570;
+ public static final int NULL_23572 = 23572;
+ public static final int NULL_23574 = 23574;
+ public static final int NULL_23576 = 23576;
+ public static final int NULL_23578 = 23578;
+ public static final int NULL_23580 = 23580;
+ public static final int NULL_23582 = 23582;
+ public static final int NULL_23584 = 23584;
+ public static final int NULL_23586 = 23586;
+ public static final int NULL_23588 = 23588;
+ public static final int NULL_23590 = 23590;
+ public static final int NULL_23592 = 23592;
+ public static final int NULL_23594 = 23594;
+ public static final int NULL_23596 = 23596;
+ public static final int NULL_23598 = 23598;
+ public static final int NULL_23600 = 23600;
+ public static final int NULL_23602 = 23602;
+ public static final int NULL_23604 = 23604;
+ public static final int NULL_23606 = 23606;
+ public static final int NULL_23608 = 23608;
+ public static final int NULL_23610 = 23610;
+ public static final int NULL_23612 = 23612;
+ public static final int NULL_23614 = 23614;
+ public static final int NULL_23616 = 23616;
+ public static final int NULL_23618 = 23618;
+ public static final int NULL_23621 = 23621;
+ public static final int NULL_23623 = 23623;
+ public static final int NULL_23625 = 23625;
+ public static final int NULL_23627 = 23627;
+ public static final int NULL_23629 = 23629;
+ public static final int NULL_23631 = 23631;
+ public static final int NULL_23641 = 23641;
+ public static final int NULL_23643 = 23643;
+ public static final int NULL_23645 = 23645;
+ public static final int NULL_23647 = 23647;
+ public static final int NULL_23651 = 23651;
/* This file is automatically generated. Do not edit. */
}
diff --git a/runelite-api/src/main/java/net/runelite/api/ObjectID.java b/runelite-api/src/main/java/net/runelite/api/ObjectID.java
index 248591ae09..67335fa5dd 100644
--- a/runelite-api/src/main/java/net/runelite/api/ObjectID.java
+++ b/runelite-api/src/main/java/net/runelite/api/ObjectID.java
@@ -18654,5 +18654,6 @@ public final class ObjectID
public static final int WEB_34897 = 34897;
public static final int WEB_34898 = 34898;
public static final int SLASHED_WEB_34899 = 34899;
+ public static final int FOG_MARKER = 34905;
/* This file is automatically generated. Do not edit. */
}
diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java
index 9be2f2d854..b134b2df0f 100644
--- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java
+++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java
@@ -152,6 +152,7 @@ public class WidgetID
public static final int SEED_BOX_GROUP_ID = 128;
public static final int ITEMS_KEPT_ON_DEATH_GROUP_ID = 4;
public static final int TRADING_SCREEN = 335;
+ public static final int SEED_VAULT_GROUP_ID = 631;
static class WorldMap
{
@@ -1122,4 +1123,9 @@ public class WidgetID
static final int BUTTON_9 = 32;
static final int BUTTON_0 = 34;
}
+
+ static class SeedVault
+ {
+ static final int TITLE_CONTAINER = 2;
+ }
}
diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java
index 754b1ed76f..55ad634155 100644
--- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java
+++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java
@@ -712,14 +712,6 @@ public enum WidgetInfo
EQUIPMENT_MAGIC_DAMAGE(WidgetID.EQUIPMENT_PAGE_GROUP_ID, WidgetID.EquipmentWidgetIdentifiers.MAGIC_DAMAGE),
EQUIP_YOUR_CHARACTER(WidgetID.EQUIPMENT_PAGE_GROUP_ID, WidgetID.EquipmentWidgetIdentifiers.EQUIP_YOUR_CHARACTER),
- ITEMS_KEPT_ON_DEATH_CONTAINER(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.KEPT_ITEMS_CONTAINER),
- ITEMS_LOST_ON_DEATH_CONTAINER(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_CONTAINER),
- ITEMS_KEPT_INFORMATION_CONTAINER(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.INFORMATION_CONTAINER),
- ITEMS_KEPT_SAFE_ZONE_CONTAINER(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.SAFE_ZONE_CONTAINER),
- ITEMS_KEPT_CUSTOM_TEXT_CONTAINER(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.CUSTOM_TEXT_CONTAINER),
- ITEMS_LOST_VALUE(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_VALUE),
- ITEMS_KEPT_MAX(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.MAX_ITEMS_KEPT_ON_DEATH),
-
FIXED_BANK_PIN(WidgetID.FIXED_VIEWPORT_GROUP_ID, WidgetID.FixedViewport.BANK_PIN),
RESIZABLE_BANK_PIN(WidgetID.RESIZABLE_VIEWPORT_OLD_SCHOOL_BOX_GROUP_ID, WidgetID.ResizableViewport.BANK_PIN),
RESIZABLE_BOTTOM_LINE_BANK_PIN(WidgetID.RESIZABLE_VIEWPORT_BOTTOM_LINE_GROUP_ID, WidgetID.ResizableViewportBottomLine.BANK_PIN),
@@ -750,8 +742,17 @@ public enum WidgetInfo
XP_DROP_6(WidgetID.EXPERIENCE_DROP_GROUP_ID, WidgetID.ExperienceDrop.DROP_6),
XP_DROP_7(WidgetID.EXPERIENCE_DROP_GROUP_ID, WidgetID.ExperienceDrop.DROP_7),
+ ITEMS_KEPT_CUSTOM_TEXT_CONTAINER(WidgetID.KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.CUSTOM_TEXT_CONTAINER),
+ ITEMS_KEPT_ON_DEATH_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.KEPT_ITEMS_CONTAINER),
ITEMS_KEPT_ON_DEATH_TEXT(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.KEPT_ITEMS_TEXT),
- ITEMS_LOST_ON_DEATH_TEXT(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_TEXT);
+ ITEMS_LOST_ON_DEATH_TEXT(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_TEXT),
+ ITEMS_LOST_ON_DEATH_CONTAINER(WidgetID.ITEMS_KEPT_ON_DEATH_GROUP_ID, WidgetID.KeptOnDeath.LOST_ITEMS_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_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),
+
+ SEED_VAULT_TITLE_CONTAINER(WidgetID.SEED_VAULT_GROUP_ID, WidgetID.SeedVault.TITLE_CONTAINER);
private final int groupId;
private final int childId;
diff --git a/runelite-client/pom.xml b/runelite-client/pom.xml
index 027ce16219..2313bd41fc 100644
--- a/runelite-client/pom.xml
+++ b/runelite-client/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
client
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankCalculation.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankCalculation.java
deleted file mode 100644
index 5a9fd695fd..0000000000
--- a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankCalculation.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (c) 2018, Jeremy Plsek
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package net.runelite.client.plugins.bank;
-
-import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.inject.Inject;
-import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
-import net.runelite.api.Client;
-import net.runelite.api.InventoryID;
-import net.runelite.api.Item;
-import net.runelite.api.ItemContainer;
-import net.runelite.api.ItemID;
-import static net.runelite.api.ItemID.COINS_995;
-import static net.runelite.api.ItemID.PLATINUM_TOKEN;
-import net.runelite.api.Varbits;
-import net.runelite.client.game.ItemManager;
-
-@Slf4j
-class BankCalculation
-{
- private static final ImmutableList TAB_VARBITS = ImmutableList.of(
- Varbits.BANK_TAB_ONE_COUNT,
- Varbits.BANK_TAB_TWO_COUNT,
- Varbits.BANK_TAB_THREE_COUNT,
- Varbits.BANK_TAB_FOUR_COUNT,
- Varbits.BANK_TAB_FIVE_COUNT,
- Varbits.BANK_TAB_SIX_COUNT,
- Varbits.BANK_TAB_SEVEN_COUNT,
- Varbits.BANK_TAB_EIGHT_COUNT,
- Varbits.BANK_TAB_NINE_COUNT
- );
-
- private final BankPlugin plugin;
- private final ItemManager itemManager;
- private final Client client;
-
- // Used to avoid extra calculation if the bank has not changed
- private int itemsHash;
-
- @Getter
- private long gePrice;
-
- @Getter
- private long haPrice;
-
- @Inject
- BankCalculation(ItemManager itemManager, BankPlugin plugin, Client client)
- {
- this.itemManager = itemManager;
- this.plugin = plugin;
- this.client = client;
- }
-
- /**
- * Calculate the bank based on the cache, price can be 0 if bank not active, or cache not set
- */
- void calculate()
- {
- ItemContainer bankInventory = client.getItemContainer(InventoryID.BANK);
-
- if (bankInventory == null)
- {
- return;
- }
-
- Item[] items = bankInventory.getItems();
- int currentTab = client.getVar(Varbits.CURRENT_BANK_TAB);
-
- if (currentTab > 0)
- {
- int startIndex = 0;
-
- for (int i = currentTab - 1; i > 0; i--)
- {
- startIndex += client.getVar(TAB_VARBITS.get(i - 1));
- }
-
- int itemCount = client.getVar(TAB_VARBITS.get(currentTab - 1));
- items = Arrays.copyOfRange(items, startIndex, startIndex + itemCount);
- }
-
- if (items.length == 0 || !isBankDifferent(items))
- {
- return;
- }
-
- log.debug("Calculating new bank value...");
-
- gePrice = haPrice = 0;
-
- List itemIds = new ArrayList<>();
-
- // Generate our lists (and do some quick price additions)
- for (Item item : items)
- {
- int quantity = item.getQuantity();
-
- if (item.getId() <= 0 || quantity == 0)
- {
- continue;
- }
-
- if (item.getId() == COINS_995)
- {
- gePrice += quantity;
- haPrice += quantity;
- continue;
- }
-
- if (item.getId() == PLATINUM_TOKEN)
- {
- gePrice += quantity * 1000L;
- haPrice += quantity * 1000L;
- continue;
- }
-
- if (plugin.isShowGE())
- {
- itemIds.add(item.getId());
- }
-
- if (plugin.isShowHA())
- {
- long alchValue = itemManager.getAlchValue(item.getId());
-
- if (alchValue > 0)
- {
- haPrice += alchValue * quantity;
- }
- }
- }
-
- // Now do the calculations
- if (plugin.isShowGE() && !itemIds.isEmpty())
- {
- for (Item item : items)
- {
- int itemId = item.getId();
- int quantity = item.getQuantity();
-
- if (itemId <= 0 || quantity == 0
- || itemId == ItemID.COINS_995 || itemId == ItemID.PLATINUM_TOKEN)
- {
- continue;
- }
-
- gePrice += (long) itemManager.getItemPrice(itemId) * quantity;
- }
- }
- }
-
- private boolean isBankDifferent(Item[] items)
- {
- Map mapCheck = new HashMap<>();
-
- for (Item item : items)
- {
- mapCheck.put(item.getId(), item.getQuantity());
- }
-
- int curHash = mapCheck.hashCode();
-
- if (curHash != itemsHash)
- {
- itemsHash = curHash;
- return true;
- }
-
- return false;
- }
-}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankConfig.java
index 716ae95d18..b73869ed57 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankConfig.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankConfig.java
@@ -97,4 +97,15 @@ public interface BankConfig extends Config
{
return false;
}
+
+ @ConfigItem(
+ keyName = "seedVaultValue",
+ name = "Show seed vault value",
+ description = "Adds the total value of all seeds inside the seed vault to the title",
+ position = 7
+ )
+ default boolean seedVaultValue()
+ {
+ return true;
+ }
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java
index 3e5693165a..f620cbbbba 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/BankPlugin.java
@@ -26,17 +26,29 @@
*/
package net.runelite.client.plugins.bank;
+import com.google.common.collect.ImmutableList;
import com.google.inject.Provides;
+import java.util.Arrays;
+import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import lombok.AccessLevel;
import lombok.Getter;
import net.runelite.api.Client;
+import net.runelite.api.InventoryID;
+import net.runelite.api.Item;
+import net.runelite.api.ItemContainer;
import net.runelite.api.MenuEntry;
import net.runelite.api.events.ConfigChanged;
+import net.runelite.api.Varbits;
+import net.runelite.api.events.ItemContainerChanged;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuShouldLeftClick;
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.config.ConfigManager;
import net.runelite.client.eventbus.EventBus;
@@ -53,9 +65,22 @@ import net.runelite.client.util.StackFormatter;
@Singleton
public class BankPlugin extends Plugin
{
+ private static final List TAB_VARBITS = ImmutableList.of(
+ Varbits.BANK_TAB_ONE_COUNT,
+ Varbits.BANK_TAB_TWO_COUNT,
+ Varbits.BANK_TAB_THREE_COUNT,
+ Varbits.BANK_TAB_FOUR_COUNT,
+ Varbits.BANK_TAB_FIVE_COUNT,
+ Varbits.BANK_TAB_SIX_COUNT,
+ Varbits.BANK_TAB_SEVEN_COUNT,
+ Varbits.BANK_TAB_EIGHT_COUNT,
+ Varbits.BANK_TAB_NINE_COUNT
+ );
+
private static final String DEPOSIT_WORN = "Deposit worn items";
private static final String DEPOSIT_INVENTORY = "Deposit inventory";
private static final String DEPOSIT_LOOT = "Deposit loot";
+ private static final String SEED_VAULT_TITLE = "Seed Vault";
@Inject
private Client client;
@@ -63,9 +88,6 @@ public class BankPlugin extends Plugin
@Inject
private ClientThread clientThread;
- @Inject
- private BankCalculation bankCalculation;
-
@Inject
private BankConfig config;
@@ -75,6 +97,12 @@ public class BankPlugin extends Plugin
@Inject
private EventBus eventBus;
+ @Inject
+ private ContainerCalculation bankCalculation;
+
+ @Inject
+ private ContainerCalculation seedVaultCalculation;
+
private boolean forceRightClickFlag;
@Provides
@@ -113,6 +141,8 @@ public class BankPlugin extends Plugin
eventBus.subscribe(MenuShouldLeftClick.class, this, this::onMenuShouldLeftClick);
eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded);
eventBus.subscribe(ScriptCallbackEvent.class, this, this::onScriptCallbackEvent);
+ eventBus.subscribe(WidgetLoaded.class, this, this::onWidgetLoaded);
+ eventBus.subscribe(ItemContainerChanged.class, this, this::onItemContainerChanged);
}
private void onMenuShouldLeftClick(MenuShouldLeftClick event)
@@ -153,12 +183,47 @@ public class BankPlugin extends Plugin
return;
}
- String strCurrentTab = "";
- bankCalculation.calculate();
- long gePrice = bankCalculation.getGePrice();
- long haPrice = bankCalculation.getHaPrice();
+ final ContainerPrices prices = bankCalculation.calculate(getBankTabItems());
+ if (prices == null)
+ {
+ return;
+ }
- if (this.showGE && gePrice != 0)
+ final String strCurrentTab = createValueText(prices);
+
+ String[] stringStack = client.getStringStack();
+ int stringStackSize = client.getStringStackSize();
+
+ stringStack[stringStackSize - 1] += strCurrentTab;
+ }
+
+ private void onWidgetLoaded(WidgetLoaded event)
+ {
+ if (event.getGroupId() != WidgetID.SEED_VAULT_GROUP_ID || !config.seedVaultValue())
+ {
+ return;
+ }
+
+ updateSeedVaultTotal();
+ }
+
+ private void onItemContainerChanged(ItemContainerChanged event)
+ {
+ if (event.getContainerId() != InventoryID.SEED_VAULT.getId() || !config.seedVaultValue())
+ {
+ return;
+ }
+
+ updateSeedVaultTotal();
+ }
+
+ private String createValueText(final ContainerPrices prices)
+ {
+ final long gePrice = prices.getGePrice();
+ final long haPrice = prices.getHighAlchPrice();
+
+ String strCurrentTab = "";
+ if (config.showGE() && gePrice != 0)
{
strCurrentTab += " (";
@@ -196,10 +261,71 @@ public class BankPlugin extends Plugin
}
}
- String[] stringStack = client.getStringStack();
- int stringStackSize = client.getStringStackSize();
+ return strCurrentTab;
+ }
- stringStack[stringStackSize - 1] += strCurrentTab;
+ private Item[] getBankTabItems()
+ {
+ final ItemContainer container = client.getItemContainer(InventoryID.BANK);
+ if (container == null)
+ {
+ return null;
+ }
+
+ final Item[] items = container.getItems();
+ int currentTab = client.getVar(Varbits.CURRENT_BANK_TAB);
+
+ if (currentTab > 0)
+ {
+ int startIndex = 0;
+
+ for (int i = currentTab - 1; i > 0; i--)
+ {
+ startIndex += client.getVar(TAB_VARBITS.get(i - 1));
+ }
+
+ int itemCount = client.getVar(TAB_VARBITS.get(currentTab - 1));
+ return Arrays.copyOfRange(items, startIndex, startIndex + itemCount);
+ }
+
+ 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();
}
private void onConfigChanged(ConfigChanged event)
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/ContainerCalculation.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/ContainerCalculation.java
new file mode 100644
index 0000000000..58cd0f9e7c
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/ContainerCalculation.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2019, TheStonedTurtle
+ * Copyright (c) 2019, Adam
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package net.runelite.client.plugins.bank;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Nullable;
+import javax.inject.Inject;
+import net.runelite.api.Constants;
+import net.runelite.api.Item;
+import net.runelite.api.ItemID;
+import net.runelite.client.game.ItemManager;
+
+class ContainerCalculation
+{
+ private final ItemManager itemManager;
+
+ private int hash;
+ private ContainerPrices containerPrices;
+
+ @Inject
+ private ContainerCalculation(ItemManager itemManager)
+ {
+ this.itemManager = itemManager;
+ }
+
+ @Nullable
+ ContainerPrices calculate(Item[] items)
+ {
+ // Returns last calculation if inventory hasn't changed
+ final int newHash = hashItems(items);
+ if (containerPrices != null && hash == newHash)
+ {
+ return containerPrices;
+ }
+
+ hash = newHash;
+
+ long ge = 0;
+ long alch = 0;
+
+ for (final Item item : items)
+ {
+ final int qty = item.getQuantity();
+ final int id = item.getId();
+
+ if (id <= 0 || qty == 0)
+ {
+ continue;
+ }
+
+ switch (id)
+ {
+ case ItemID.COINS_995:
+ ge += qty;
+ alch += qty;
+ break;
+ case ItemID.PLATINUM_TOKEN:
+ ge += qty * 1000L;
+ alch += qty * 1000L;
+ break;
+ default:
+ final long storePrice = itemManager.getItemDefinition(id).getPrice();
+ final long alchPrice = (long) (storePrice * Constants.HIGH_ALCHEMY_MULTIPLIER);
+ alch += alchPrice * qty;
+ ge += itemManager.getItemPrice(id) * qty;
+ break;
+ }
+
+ }
+
+ ContainerPrices prices = new ContainerPrices(ge, alch);
+ containerPrices = prices;
+
+ return prices;
+ }
+
+ private int hashItems(final Item[] items)
+ {
+ final Map mapCheck = new HashMap<>(items.length);
+ for (Item item : items)
+ {
+ mapCheck.put(item.getId(), item.getQuantity());
+ }
+
+ return mapCheck.hashCode();
+ }
+}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bank/ContainerPrices.java b/runelite-client/src/main/java/net/runelite/client/plugins/bank/ContainerPrices.java
new file mode 100644
index 0000000000..5762218e18
--- /dev/null
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/bank/ContainerPrices.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2019, TheStonedTurtle
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package net.runelite.client.plugins.bank;
+
+import lombok.Value;
+
+@Value
+class ContainerPrices
+{
+ private long gePrice;
+ private long highAlchPrice;
+}
diff --git a/runelite-client/src/main/resources/item_variations.json b/runelite-client/src/main/resources/item_variations.json
index d5639ec663..140d8d911b 100644
--- a/runelite-client/src/main/resources/item_variations.json
+++ b/runelite-client/src/main/resources/item_variations.json
@@ -130,7 +130,11 @@
169,
171,
173,
- 2444
+ 2444,
+ 23551,
+ 23553,
+ 23555,
+ 23557
],
"antipoison": [
175,
@@ -3059,7 +3063,11 @@
3024,
3026,
3028,
- 3030
+ 3030,
+ 23567,
+ 23569,
+ 23571,
+ 23573
],
"agility potion": [
3032,
@@ -3123,7 +3131,8 @@
],
"cooked karambwan": [
3144,
- 3147
+ 3147,
+ 23533
],
"karambwan paste": [
3152,
@@ -3951,7 +3960,8 @@
4863,
4864,
4865,
- 4866
+ 4866,
+ 23653
],
"ahrims robetop": [
4712,
@@ -3977,7 +3987,8 @@
4881,
4882,
4883,
- 4884
+ 4884,
+ 23639
],
"dharoks greataxe": [
4718,
@@ -4001,7 +4012,8 @@
4899,
4900,
4901,
- 4902
+ 4902,
+ 23633
],
"guthans helm": [
4724,
@@ -4009,7 +4021,8 @@
4905,
4906,
4907,
- 4908
+ 4908,
+ 23638
],
"guthans warspear": [
4726,
@@ -4057,7 +4070,8 @@
4941,
4942,
4943,
- 4944
+ 4944,
+ 23632
],
"karils leatherskirt": [
4738,
@@ -4073,7 +4087,8 @@
4953,
4954,
4955,
- 4956
+ 4956,
+ 23637
],
"torags hammers": [
4747,
@@ -4097,7 +4112,8 @@
4971,
4972,
4973,
- 4974
+ 4974,
+ 23634
],
"veracs helm": [
4753,
@@ -4105,7 +4121,8 @@
4977,
4978,
4979,
- 4980
+ 4980,
+ 23636
],
"veracs flail": [
4755,
@@ -4129,7 +4146,8 @@
4995,
4996,
4997,
- 4998
+ 4998,
+ 23635
],
"sithik portrait": [
4814,
@@ -4812,7 +4830,8 @@
],
"amulet of fury": [
6585,
- 12436
+ 12436,
+ 23640
],
"white dagger": [
6591,
@@ -4872,7 +4891,11 @@
6685,
6687,
6689,
- 6691
+ 6691,
+ 23575,
+ 23577,
+ 23579,
+ 23581
],
"slayer gloves": [
6708,
@@ -4889,7 +4912,8 @@
],
"seers ring": [
6731,
- 11770
+ 11770,
+ 23624
],
"archers ring": [
6733,
@@ -4901,7 +4925,8 @@
],
"berserker ring": [
6737,
- 11773
+ 11773,
+ 23595
],
"darklight": [
6746,
@@ -5021,6 +5046,10 @@
6886,
6887
],
+ "mages book": [
+ 6889,
+ 23652
+ ],
"animals bones": [
6904,
6905,
@@ -5240,6 +5269,10 @@
7460,
20583
],
+ "barrows gloves": [
+ 7462,
+ 23593
+ ],
"cornflour": [
7463,
7466
@@ -6359,6 +6392,10 @@
9183,
9463
],
+ "rune crossbow": [
+ 9185,
+ 23601
+ ],
"jade bolts": [
9237,
9335
@@ -6381,7 +6418,8 @@
],
"diamond bolts": [
9243,
- 9340
+ 9340,
+ 23649
],
"dragonstone bolts": [
9244,
@@ -6854,6 +6892,10 @@
10462,
10788
],
+ "avas accumulator": [
+ 10499,
+ 23609
+ ],
"reindeer hat": [
10507,
10722
@@ -7022,6 +7064,10 @@
10822,
10824
],
+ "helm of neitiznot": [
+ 10828,
+ 23591
+ ],
"hard hat": [
10862,
10883
@@ -7052,7 +7098,11 @@
10925,
10927,
10929,
- 10931
+ 10931,
+ 23559,
+ 23561,
+ 23563,
+ 23565
],
"lumberjack top": [
10939,
@@ -7464,6 +7514,10 @@
11736,
11737
],
+ "armadyl crossbow": [
+ 11785,
+ 23611
+ ],
"steam battlestaff": [
11787,
12795
@@ -7472,6 +7526,10 @@
11789,
12796
],
+ "staff of the dead": [
+ 11791,
+ 23613
+ ],
"godsword shards": [
11794,
11796,
@@ -7502,6 +7560,10 @@
11820,
11822
],
+ "bandos tassets": [
+ 11834,
+ 23646
+ ],
"dragon boots": [
11840,
22234
@@ -7694,7 +7756,8 @@
],
"occult necklace": [
12002,
- 19720
+ 19720,
+ 23654
],
"soft clay pack": [
12009,
@@ -7736,7 +7799,11 @@
12625,
12627,
12629,
- 12631
+ 12631,
+ 23583,
+ 23585,
+ 23587,
+ 23589
],
"stamina mix": [
12633,
@@ -7836,7 +7903,11 @@
12695,
12697,
12699,
- 12701
+ 12701,
+ 23543,
+ 23545,
+ 23547,
+ 23549
],
"menagerie": [
12725,
@@ -7854,6 +7925,10 @@
12755,
12756
],
+ "rune pouch": [
+ 12791,
+ 23650
+ ],
"nest box": [
12792,
12793,
@@ -7865,6 +7940,14 @@
12817,
19559
],
+ "spirit shield": [
+ 12829,
+ 23599
+ ],
+ "blessed spirit shield": [
+ 12831,
+ 23642
+ ],
"amulet of the damned": [
12851,
12853
@@ -7917,7 +8000,8 @@
"dragon defender": [
12954,
19722,
- 20463
+ 20463,
+ 23597
],
"bronze set": [
12960,
@@ -8072,6 +8156,10 @@
13222,
13224
],
+ "eternal boots": [
+ 13235,
+ 23644
+ ],
"infernal axe": [
13241,
13242
@@ -8348,11 +8436,16 @@
13652,
20784
],
+ "heavy ballista": [
+ 19481,
+ 23630
+ ],
"dragon javelin": [
19484,
19486,
19488,
- 19490
+ 19490,
+ 23648
],
"zenyte bracelet": [
19492,
@@ -8606,6 +8699,10 @@
21003,
21205
],
+ "kodai wand": [
+ 21006,
+ 23626
+ ],
"dragon sword": [
21009,
21206
@@ -8668,7 +8765,8 @@
"infernal cape": [
21287,
21295,
- 21297
+ 21297,
+ 23622
],
"amethyst javelin": [
21318,
@@ -8730,6 +8828,18 @@
21739,
21752
],
+ "imbued saradomin cape": [
+ 21791,
+ 23607
+ ],
+ "imbued guthix cape": [
+ 21793,
+ 23603
+ ],
+ "imbued zamorak cape": [
+ 21795,
+ 23605
+ ],
"bracelet of ethereum": [
21816,
21817
@@ -8953,6 +9063,10 @@
22323,
22481
],
+ "ghrazi rapier": [
+ 22324,
+ 23628
+ ],
"scythe of vitur": [
22325,
22486,
@@ -9017,6 +9131,22 @@
22552,
22555
],
+ "vestas longsword": [
+ 22613,
+ 23615
+ ],
+ "statiuss warhammer": [
+ 22622,
+ 23620
+ ],
+ "morrigans javelin": [
+ 22636,
+ 23619
+ ],
+ "zuriels staff": [
+ 22647,
+ 23617
+ ],
"dragon hasta": [
22731,
22734,
diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt b/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt
index 48cda4f144..872c5a95e3 100644
--- a/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt
+++ b/runelite-client/src/main/resources/net/runelite/client/plugins/skybox/skybox.txt
@@ -404,7 +404,6 @@ R 42 159 43 159
R 43 58 45 61
r 24 60
r 29 60
-r 32 75
r 44 155
r 47 158
r 53 76
@@ -946,3 +945,7 @@ c 7 4
// Cerberus
#100
R 19 19 21 20
+
+// Cosmic entity's plane
+#040404
+r 32 75
\ No newline at end of file
diff --git a/runelite-client/src/main/scripts/QuestListShowProgress.hash b/runelite-client/src/main/scripts/QuestListShowProgress.hash
index d3899f1431..fec40c9f7d 100644
--- a/runelite-client/src/main/scripts/QuestListShowProgress.hash
+++ b/runelite-client/src/main/scripts/QuestListShowProgress.hash
@@ -1 +1 @@
-A6B3A7BFE7B688A08F69B91A7FD5C7184D71147D3DAF74B1262369D85DBB3A03
\ No newline at end of file
+4D9A96A7D57F6B9661273FB645A0510DD0F02C8A9C2E133772065F8AB588614D
\ No newline at end of file
diff --git a/runelite-client/src/main/scripts/QuestListShowProgress.rs2asm b/runelite-client/src/main/scripts/QuestListShowProgress.rs2asm
index f7f91cd83e..b451af252c 100644
--- a/runelite-client/src/main/scripts/QuestListShowProgress.rs2asm
+++ b/runelite-client/src/main/scripts/QuestListShowProgress.rs2asm
@@ -77,14 +77,14 @@ LABEL60:
iload 5
iload 6
if_icmplt LABEL64
- jump LABEL108
+ jump LABEL119
LABEL64:
iload 1
iload 5
cc_find
iconst 1
if_icmpeq LABEL70
- jump LABEL103
+ jump LABEL114
LABEL70:
iload 5
invoke 1358
@@ -96,7 +96,7 @@ LABEL70:
LABEL77:
iconst 901389
istore 4
- jump LABEL89
+ jump LABEL100
LABEL80:
iload 3
iconst 0
@@ -105,11 +105,24 @@ LABEL80:
LABEL84:
iconst 16776960
istore 4
- jump LABEL89
+ jump LABEL100
LABEL87:
+ iconst 105
+ iconst 74
+ iconst 2099
+ iload 5
+ enum
+ iconst 603
+ if_icmpeq LABEL95
+ jump LABEL98
+LABEL95:
+ iconst 10461087
+ istore 4
+ jump LABEL100
+LABEL98:
iconst 16711680
istore 4
-LABEL89:
+LABEL100:
iload 4
cc_setcolour
iconst 85
@@ -124,54 +137,54 @@ LABEL89:
iload 4
sconst "Iii"
cc_setonmouseleave
-LABEL103:
+LABEL114:
iload 5
iconst 1
add
istore 5
jump LABEL60
-LABEL108:
+LABEL119:
iconst 0
invoke 2265
istore 6
istore 5
-LABEL112:
+LABEL123:
iload 5
iload 6
- if_icmplt LABEL116
- jump LABEL160
-LABEL116:
+ if_icmplt LABEL127
+ jump LABEL171
+LABEL127:
iload 2
iload 5
cc_find
iconst 1
- if_icmpeq LABEL122
- jump LABEL155
-LABEL122:
+ if_icmpeq LABEL133
+ jump LABEL166
+LABEL133:
iload 5
invoke 1359
istore 3
iload 3
iconst 2
- if_icmpeq LABEL129
- jump LABEL132
-LABEL129:
+ if_icmpeq LABEL140
+ jump LABEL143
+LABEL140:
iconst 901389
istore 4
- jump LABEL141
-LABEL132:
+ jump LABEL152
+LABEL143:
iload 3
iconst 0
- if_icmpeq LABEL136
- jump LABEL139
-LABEL136:
+ if_icmpeq LABEL147
+ jump LABEL150
+LABEL147:
iconst 16776960
istore 4
- jump LABEL141
-LABEL139:
+ jump LABEL152
+LABEL150:
iconst 16711680
istore 4
-LABEL141:
+LABEL152:
iload 4
cc_setcolour
iconst 85
@@ -186,13 +199,13 @@ LABEL141:
iload 4
sconst "Iii"
cc_setonmouseleave
-LABEL155:
+LABEL166:
iload 5
iconst 1
add
istore 5
- jump LABEL112
-LABEL160:
+ jump LABEL123
+LABEL171:
sconst "questProgressUpdated"
- runelite_callback
+ runelite_callback
return
diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/bank/BankCalculationTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/bank/ContainerCalculationTest.java
similarity index 80%
rename from runelite-client/src/test/java/net/runelite/client/plugins/bank/BankCalculationTest.java
rename to runelite-client/src/test/java/net/runelite/client/plugins/bank/ContainerCalculationTest.java
index 2736c133a5..180ade9fe0 100644
--- a/runelite-client/src/test/java/net/runelite/client/plugins/bank/BankCalculationTest.java
+++ b/runelite-client/src/test/java/net/runelite/client/plugins/bank/ContainerCalculationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, Adam
+ * Copyright (c) 2019, Adam
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -30,13 +30,12 @@ import com.google.inject.testing.fieldbinder.Bind;
import com.google.inject.testing.fieldbinder.BoundFieldModule;
import javax.inject.Inject;
import net.runelite.api.Client;
-import net.runelite.api.InventoryID;
import net.runelite.api.Item;
import net.runelite.api.ItemDefinition;
-import net.runelite.api.ItemContainer;
import net.runelite.api.ItemID;
import net.runelite.client.game.ItemManager;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -46,7 +45,7 @@ import static org.mockito.Mockito.when;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
-public class BankCalculationTest
+public class ContainerCalculationTest
{
@Mock
@Bind
@@ -56,12 +55,8 @@ public class BankCalculationTest
@Bind
private ItemManager itemManager;
- @Mock
- @Bind
- private BankConfig bankConfig;
-
@Inject
- private BankPlugin bankplugin;
+ private ContainerCalculation containerCalculation;
@Before
public void before()
@@ -72,9 +67,6 @@ public class BankCalculationTest
@Test
public void testCalculate()
{
- when(bankConfig.showHA())
- .thenReturn(true);
-
Item coins = mock(Item.class);
when(coins.getId())
.thenReturn(ItemID.COINS_995);
@@ -92,13 +84,6 @@ public class BankCalculationTest
whip
).toArray(new Item[0]);
- ItemContainer bankContainer = mock(ItemContainer.class);
- when(bankContainer.getItems())
- .thenReturn(items);
-
- when(client.getItemContainer(InventoryID.BANK))
- .thenReturn(bankContainer);
-
ItemDefinition whipComp = mock(ItemDefinition.class);
when(whipComp.getId())
.thenReturn(ItemID.ABYSSAL_WHIP);
@@ -107,10 +92,10 @@ public class BankCalculationTest
when(itemManager.getItemDefinition(ItemID.ABYSSAL_WHIP))
.thenReturn(whipComp);
- BankCalculation bankCalculation = new BankCalculation(itemManager, bankplugin, client);
- bankCalculation.calculate();
+ final ContainerPrices prices = containerCalculation.calculate(items);
+ assertNotNull(prices);
- long value = bankCalculation.getHaPrice();
- assertTrue(value == Integer.MAX_VALUE);
+ long value = prices.getHighAlchPrice();
+ assertTrue(value > Integer.MAX_VALUE);
}
-}
+}
\ No newline at end of file
diff --git a/runelite-mixins/pom.xml b/runelite-mixins/pom.xml
index 4885636cac..d359e592da 100644
--- a/runelite-mixins/pom.xml
+++ b/runelite-mixins/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
mixins
diff --git a/runelite-plugin-archetype/pom.xml b/runelite-plugin-archetype/pom.xml
index bf278915ec..cb5b6f10bb 100644
--- a/runelite-plugin-archetype/pom.xml
+++ b/runelite-plugin-archetype/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
runelite-plugin-archetype
diff --git a/runelite-script-assembler-plugin/pom.xml b/runelite-script-assembler-plugin/pom.xml
index 03dc1fbb50..e406ee8dd9 100644
--- a/runelite-script-assembler-plugin/pom.xml
+++ b/runelite-script-assembler-plugin/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
script-assembler-plugin
diff --git a/runescape-api/pom.xml b/runescape-api/pom.xml
index cfe8d98273..d1ddcb708e 100644
--- a/runescape-api/pom.xml
+++ b/runescape-api/pom.xml
@@ -29,7 +29,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
net.runelite.rs
diff --git a/runescape-client/pom.xml b/runescape-client/pom.xml
index aec7c07302..0559f99f3a 100644
--- a/runescape-client/pom.xml
+++ b/runescape-client/pom.xml
@@ -5,7 +5,7 @@
net.runelite
runelite-parent
- 1.5.29-SNAPSHOT
+ 1.5.30-SNAPSHOT
net.runelite.rs