From e5d9dd4ceb44842563b33a6f6d9304044a460824 Mon Sep 17 00:00:00 2001 From: AttackOfTheMoons <42690834+AttackOfTheMoons@users.noreply.github.com> Date: Sun, 28 Jul 2019 21:59:12 -1000 Subject: [PATCH] slayer: Fix NPE when getting unsupported task (#9490) --- .../runelite/client/plugins/slayer/SlayerPlugin.java | 11 +++++++++-- .../java/net/runelite/client/plugins/slayer/Task.java | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) 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 09e9f95657..8204846ffe 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 @@ -535,7 +535,14 @@ public class SlayerPlugin extends Plugin return; } - final int taskKillExp = Task.getTask(taskName).getExpectedKillExp(); + final Task task = Task.getTask(taskName); + + if (task == null) + { + return; + } + + final int taskKillExp = task.getExpectedKillExp(); // Only count exp gain as a kill if the task either has no expected exp for a kill, or if the exp gain is equal // to the expected exp gain for the task. @@ -595,7 +602,7 @@ public class SlayerPlugin extends Plugin private boolean doubleTroubleExtraKill() { return WorldPoint.fromLocalInstance(client, client.getLocalPlayer().getLocalLocation()).getRegionID() == GROTESQUE_GUARDIANS_REGION && - SlayerUnlock.GROTESQUE_GUARDIAN_DOUBLE_COUNT.isEnabled(client); + SlayerUnlock.GROTESQUE_GUARDIAN_DOUBLE_COUNT.isEnabled(client); } private boolean isTarget(NPC npc) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java index f844056473..654150ebda 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/Task.java @@ -28,6 +28,7 @@ package net.runelite.client.plugins.slayer; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import java.util.Map; +import javax.annotation.Nullable; import lombok.Getter; import net.runelite.api.ItemID; @@ -228,6 +229,7 @@ enum Task this.expectedKillExp = expectedKillExp; } + @Nullable static Task getTask(String taskName) { return tasks.get(taskName.toLowerCase());