From ec0858548ff52986a0e84706472b85180df22ac1 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 1 Nov 2019 10:14:44 -0400 Subject: [PATCH] container calculation: fix overflow computing ge price --- .../runelite/client/plugins/bank/ContainerCalculation.java | 2 +- .../client/plugins/bank/ContainerCalculationTest.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) 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 index d78298b213..ca383bc81a 100644 --- 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 @@ -86,7 +86,7 @@ class ContainerCalculation final long storePrice = itemManager.getItemComposition(id).getPrice(); final long alchPrice = (long) (storePrice * Constants.HIGH_ALCHEMY_MULTIPLIER); alch += alchPrice * qty; - ge += itemManager.getItemPrice(id) * qty; + ge += (long) itemManager.getItemPrice(id) * qty; break; } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/bank/ContainerCalculationTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/bank/ContainerCalculationTest.java index ca52a5bff2..1f220f4b64 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/bank/ContainerCalculationTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/bank/ContainerCalculationTest.java @@ -81,11 +81,13 @@ public class ContainerCalculationTest .thenReturn(7); // 7 * .6 = 4, 4 * 1m overflows when(itemManager.getItemComposition(ItemID.ABYSSAL_WHIP)) .thenReturn(whipComp); + when(itemManager.getItemPrice(ItemID.ABYSSAL_WHIP)) + .thenReturn(3); // 1b * 3 overflows final ContainerPrices prices = containerCalculation.calculate(items); assertNotNull(prices); - long value = prices.getHighAlchPrice(); - assertTrue(value > Integer.MAX_VALUE); + assertTrue(prices.getHighAlchPrice() > Integer.MAX_VALUE); + assertTrue(prices.getGePrice() > Integer.MAX_VALUE); } }