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 8204846ffe..7215821734 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 @@ -770,7 +770,8 @@ public class SlayerPlugin extends Plugin } if (TASK_STRING_VALIDATION.matcher(task.getTask()).find() || task.getTask().length() > TASK_STRING_MAX_LENGTH || - TASK_STRING_VALIDATION.matcher(task.getLocation()).find() || task.getLocation().length() > TASK_STRING_MAX_LENGTH) + TASK_STRING_VALIDATION.matcher(task.getLocation()).find() || task.getLocation().length() > TASK_STRING_MAX_LENGTH || + Task.getTask(task.getTask()) == null || !Task.LOCATIONS.contains(task.getLocation())) { log.debug("Validation failed for task name or location: {}", task); return; 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 654150ebda..716711af23 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 @@ -26,7 +26,9 @@ package net.runelite.client.plugins.slayer; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import java.util.List; import java.util.Map; import javax.annotation.Nullable; import lombok.Getter; @@ -176,6 +178,48 @@ enum Task // private static final Map tasks; + static final List LOCATIONS = ImmutableList.of( + "", // no location is a valid location + "Abyss", + "Ancient Cavern", + "Asgarnian Ice Dungeon", + "Brimhaven Dungeon", + "Brine Rat Cavern", + "Catacombs of Kourend", + "Chasm of Fire", + "Clan Wars", + "Death Plateau", + "Evil Chicken's Lair", + "Fossil Island", + "Fremennik Slayer Dungeon", + "God Wars Dungeon", + "Iorwerth Dungeon", + "Kalphite Lair", + "Karuulm Slayer Dungeon", + "Keldagrim", + "Kraken Cove", + "Lighthouse", + "Lithkren Vault", + "Lizardman Canyon", + "Lizardman Settlement", + "Molch", + "Mount Quidamortem", + "Mourner Tunnels", + "Ogre Enclave", + "Slayer Tower", + "Smoke Devil Dungeon", + "Smoke Dungeon", + "Stronghold of Security", + "Stronghold Slayer Dungeon", + "task-only Kalphite Cave", + "Taverley Dungeon", + "Troll Stronghold", + "Waterbirth Island", + "Waterfall Dungeon", + "Wilderness", + "Witchaven Dungeon", + "Zanaris" + ); private final String name; private final int itemSpriteId;