From 1dbf432377f4b0355117b25ecde66915456b0ff8 Mon Sep 17 00:00:00 2001 From: Jordan Atwood Date: Wed, 24 Jun 2020 14:56:35 -0700 Subject: [PATCH] slayer: Update initial amount if current amount is higher Prior to this commit it was possible to receive a change or update in task by playing on mobile or another client, log back in to RuneLite with incorrect task information saved to config and, once updated via checking a slayer gem or speaking with a slayer master, having a task amount greater than the saved initial task length. This updates the plugin to use the greater of these numbers so that case is no longer possible. --- .../runelite/client/plugins/slayer/SlayerPlugin.java | 2 +- .../client/plugins/slayer/SlayerPluginTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index c8c02a8bf3..e343c29359 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -683,7 +683,7 @@ public class SlayerPlugin extends Plugin { taskName = name; amount = amt; - initialAmount = initAmt; + initialAmount = Math.max(amt, initAmt); taskLocation = location; save(); removeCounter(); diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java index 1c0bbb67f9..4780fa6863 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java @@ -775,6 +775,17 @@ public class SlayerPluginTest assertEquals(30, slayerPlugin.getAmount()); } + @Test + public void updateInitialAmount() + { + Widget npcDialog = mock(Widget.class); + when(npcDialog.getText()).thenReturn(TASK_EXISTING); + when(client.getWidget(WidgetInfo.DIALOG_NPC_TEXT)).thenReturn(npcDialog); + slayerPlugin.onGameTick(new GameTick()); + + assertEquals(222, slayerPlugin.getInitialAmount()); + } + @Test public void testTaskLookup() throws IOException {