test_class.declarator: TASK_NEW = "Your new task is to kill 231 Suqahs."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW = "Your new task is to kill 231 Suqahs.";
test_class.type: String
test_class.var_name: TASK_NEW
test_class.declarator: TASK_NEW_KONAR = "You are to bring balance to 147 Wyrms in the Karuulm Slayer Dungeon."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW_KONAR = "You are to bring balance to 147 Wyrms in the Karuulm Slayer Dungeon.";
test_class.type: String
test_class.var_name: TASK_NEW_KONAR
test_class.declarator: TASK_NEW_KONAR_2 = "You are to bring balance to 142 Hellhounds in Witchhaven Dungeon."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW_KONAR_2 = "You are to bring balance to 142 Hellhounds in Witchhaven Dungeon.";
test_class.type: String
test_class.var_name: TASK_NEW_KONAR_2
test_class.declarator: TASK_NEW_KONAR_3 = "You are to bring balance to 135 Trolls south of Mount Quidamortem."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW_KONAR_3 = "You are to bring balance to 135 Trolls south of Mount Quidamortem.";
test_class.type: String
test_class.var_name: TASK_NEW_KONAR_3
test_class.declarator: TASK_NEW_FIRST = "We'll start you off hunting goblins, you'll need to kill 17 of them."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW_FIRST = "We'll start you off hunting goblins, you'll need to kill 17 of them.";
test_class.type: String
test_class.var_name: TASK_NEW_FIRST
test_class.declarator: TASK_NEW_FIRST_KONAR = "We'll start you off bringing balance to cows, you'll need to kill 44 of them."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW_FIRST_KONAR = "We'll start you off bringing balance to cows, you'll need to kill 44 of them.";
test_class.type: String
test_class.var_name: TASK_NEW_FIRST_KONAR
test_class.declarator: TASK_NEW_NPC_CONTACT = "Excellent, you're doing great. Your new task is to kill<br>211 Suqahs."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW_NPC_CONTACT = "Excellent, you're doing great. Your new task is to kill<br>211 Suqahs.";
test_class.type: String
test_class.var_name: TASK_NEW_NPC_CONTACT
test_class.declarator: TASK_NEW_FROM_PARTNER = "You have received a new Slayer assignment from breaklulz: Dust Devils (377)"
test_class.modifier: private static final
test_class.original_string: private static final String TASK_NEW_FROM_PARTNER = "You have received a new Slayer assignment from breaklulz: Dust Devils (377)";
test_class.type: String
test_class.var_name: TASK_NEW_FROM_PARTNER
test_class.declarator: TASK_CHECKSLAYERGEM = "You're assigned to kill Suqahs; only 211 more to go."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_CHECKSLAYERGEM = "You're assigned to kill Suqahs; only 211 more to go.";
test_class.type: String
test_class.var_name: TASK_CHECKSLAYERGEM
test_class.declarator: TASK_CHECKSLAYERGEM_WILDERNESS = "You're assigned to kill Suqahs in the Wilderness; only 211 more to go."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_CHECKSLAYERGEM_WILDERNESS = "You're assigned to kill Suqahs in the Wilderness; only 211 more to go.";
test_class.type: String
test_class.var_name: TASK_CHECKSLAYERGEM_WILDERNESS
test_class.declarator: TASK_CHECKSLAYERGEM_KONAR = "You're assigned to kill Blue dragons in the Ogre Enclave; only 122 more to go."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_CHECKSLAYERGEM_KONAR = "You're assigned to kill Blue dragons in the Ogre Enclave; only 122 more to go.";
test_class.type: String
test_class.var_name: TASK_CHECKSLAYERGEM_KONAR
test_class.declarator: TASK_UPDATE_COMBAT_BRACELET = "You still need to kill 30 monsters to complete your current Slayer assignment"
test_class.modifier: private static final
test_class.original_string: private static final String TASK_UPDATE_COMBAT_BRACELET = "You still need to kill 30 monsters to complete your current Slayer assignment";
test_class.type: String
test_class.var_name: TASK_UPDATE_COMBAT_BRACELET
test_class.declarator: TASK_BOSS_NEW = "Excellent. You're now assigned to kill Vet'ion 3 times.<br>Your reward point tally is 914."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_BOSS_NEW = "Excellent. You're now assigned to kill Vet'ion 3 times.<br>Your reward point tally is 914.";
test_class.type: String
test_class.var_name: TASK_BOSS_NEW
test_class.declarator: TASK_BOSS_NEW_THE = "Excellent. You're now assigned to kill the Chaos <br>Elemental 3 times. Your reward point tally is 914."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_BOSS_NEW_THE = "Excellent. You're now assigned to kill the Chaos <br>Elemental 3 times. Your reward point tally is 914.";
test_class.type: String
test_class.var_name: TASK_BOSS_NEW_THE
test_class.declarator: TASK_KONAR_BOSS = "You're now assigned to bring balance to the Alchemical<br>Hydra 35 times. Your reward point tally is 724."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_KONAR_BOSS = "You're now assigned to bring balance to the Alchemical<br>Hydra 35 times. Your reward point tally is 724.";
test_class.type: String
test_class.var_name: TASK_KONAR_BOSS
test_class.declarator: TASK_EXISTING = "You're still hunting suqahs; you have 222 to go. Come<br>back when you've finished your task."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_EXISTING = "You're still hunting suqahs; you have 222 to go. Come<br>back when you've finished your task.";
test_class.type: String
test_class.var_name: TASK_EXISTING
test_class.declarator: TASK_EXISTING_KONAR = "You're still bringing balance to adamant dragons in the Lithkren Vault, with 3 to go. Come back when you're finished."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_EXISTING_KONAR = "You're still bringing balance to adamant dragons in the Lithkren Vault, with 3 to go. Come back when you're finished.";
test_class.type: String
test_class.var_name: TASK_EXISTING_KONAR
test_class.declarator: TASK_EXISTING_WILDERNESS = "You're still meant to be slaying bandits in the Wilderness; you have 99 to go. Come back when you've finished your task."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_EXISTING_WILDERNESS = "You're still meant to be slaying bandits in the Wilderness; you have 99 to go. Come back when you've finished your task.";
test_class.type: String
test_class.var_name: TASK_EXISTING_WILDERNESS
test_class.declarator: TASK_ACTIVATESLAYERGEM = "You're currently assigned to kill fossil island wyverns; only 23 more to go. Your reward point tally is 46."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_ACTIVATESLAYERGEM = "You're currently assigned to kill fossil island wyverns; only 23 more to go. Your reward point tally is 46.";
test_class.type: String
test_class.var_name: TASK_ACTIVATESLAYERGEM
test_class.declarator: TASK_ACTIVATESLAYERGEM_KONAR = "You're currently assigned to bring balance to adamant dragons in the Lithkren Vault; you have 3 more to go. Your reward point tally is 16."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_ACTIVATESLAYERGEM_KONAR = "You're currently assigned to bring balance to adamant dragons in the Lithkren Vault; you have 3 more to go. Your reward point tally is 16.";
test_class.type: String
test_class.var_name: TASK_ACTIVATESLAYERGEM_KONAR
test_class.declarator: TASK_ACTIVATESLAYERGEM_WILDERNESS = "You're currently assigned to kill bandits in the Wilderness; only 99 more to go. Your reward point tally is 34."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_ACTIVATESLAYERGEM_WILDERNESS = "You're currently assigned to kill bandits in the Wilderness; only 99 more to go. Your reward point tally is 34.";
test_class.type: String
test_class.var_name: TASK_ACTIVATESLAYERGEM_WILDERNESS
test_class.declarator: REWARD_POINTS = "Reward points: 17,566"
test_class.modifier: private static final
test_class.original_string: private static final String REWARD_POINTS = "Reward points: 17,566";
test_class.type: String
test_class.var_name: REWARD_POINTS
test_class.declarator: TASK_ONE = "You've completed one task; return to a Slayer master."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_ONE = "You've completed one task; return to a Slayer master.";
test_class.type: String
test_class.var_name: TASK_ONE
test_class.declarator: TASK_COMPLETE_NO_POINTS = "<col=ef1020>You've completed 3 tasks; return to a Slayer master.</col>"
test_class.modifier: private static final
test_class.original_string: private static final String TASK_COMPLETE_NO_POINTS = "<col=ef1020>You've completed 3 tasks; return to a Slayer master.</col>";
test_class.type: String
test_class.var_name: TASK_COMPLETE_NO_POINTS
test_class.declarator: TASK_POINTS = "You've completed 9 tasks and received 0 points, giving you a total of 18,000; return to a Slayer master."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_POINTS = "You've completed 9 tasks and received 0 points, giving you a total of 18,000; return to a Slayer master.";
test_class.type: String
test_class.var_name: TASK_POINTS
test_class.declarator: TASK_LARGE_STREAK = "You've completed 2,465 tasks and received 15 points, giving you a total of 17,566,000; return to a Slayer master."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_LARGE_STREAK = "You've completed 2,465 tasks and received 15 points, giving you a total of 17,566,000; return to a Slayer master.";
test_class.type: String
test_class.var_name: TASK_LARGE_STREAK
test_class.declarator: TASK_COMPETE_TURAEL = "You've completed 104 tasks. You'll be eligible to earn reward points if you complete tasks from a more advanced Slayer Master."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_COMPETE_TURAEL = "You've completed 104 tasks. You'll be eligible to earn reward points if you complete tasks from a more advanced Slayer Master.";
test_class.type: String
test_class.var_name: TASK_COMPETE_TURAEL
test_class.declarator: TASK_COMPLETE = "You need something new to hunt."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_COMPLETE = "You need something new to hunt.";
test_class.type: String
test_class.var_name: TASK_COMPLETE
test_class.declarator: TASK_CANCELED = "Your task has been cancelled."
test_class.modifier: private static final
test_class.original_string: private static final String TASK_CANCELED = "Your task has been cancelled.";
test_class.type: String
test_class.var_name: TASK_CANCELED
test_class.declarator: SUPERIOR_MESSAGE = "A superior foe has appeared..."
test_class.modifier: private static final
test_class.original_string: private static final String SUPERIOR_MESSAGE = "A superior foe has appeared...";
test_class.type: String
test_class.var_name: SUPERIOR_MESSAGE
test_class.declarator: BRACLET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer count from decreasing. It has 9 charges left."
test_class.modifier: private static final
test_class.original_string: private static final String BRACLET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer count from decreasing. It has 9 charges left.";
test_class.type: String
test_class.var_name: BRACLET_SLAUGHTER
test_class.declarator: BRACLET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your slayer task faster. It has 9 charges left."
test_class.modifier: private static final
test_class.original_string: private static final String BRACLET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your slayer task faster. It has 9 charges left.";
test_class.type: String
test_class.var_name: BRACLET_EXPEDITIOUS
test_class.declarator: BRACLET_SLAUGHTER_V2 = "Your bracelet of slaughter prevents your slayer count from decreasing. It has 1 charge left."
test_class.modifier: private static final
test_class.original_string: private static final String BRACLET_SLAUGHTER_V2 = "Your bracelet of slaughter prevents your slayer count from decreasing. It has 1 charge left.";
test_class.type: String
test_class.var_name: BRACLET_SLAUGHTER_V2
test_class.declarator: BRACLET_EXPEDITIOUS_V2 = "Your expeditious bracelet helps you progress your slayer faster. It has 1 charge left."
test_class.modifier: private static final
test_class.original_string: private static final String BRACLET_EXPEDITIOUS_V2 = "Your expeditious bracelet helps you progress your slayer faster. It has 1 charge left.";
test_class.type: String
test_class.var_name: BRACLET_EXPEDITIOUS_V2
test_class.declarator: BRACLET_SLAUGHTER_V3 = "Your bracelet of slaughter prevents your slayer count from decreasing. It then crumbles to dust."
test_class.modifier: private static final
test_class.original_string: private static final String BRACLET_SLAUGHTER_V3 = "Your bracelet of slaughter prevents your slayer count from decreasing. It then crumbles to dust.";
test_class.type: String
test_class.var_name: BRACLET_SLAUGHTER_V3
test_class.declarator: BRACLET_EXPEDITIOUS_V3 = "Your expeditious bracelet helps you progress your slayer faster. It then crumbles to dust."
test_class.modifier: private static final
test_class.original_string: private static final String BRACLET_EXPEDITIOUS_V3 = "Your expeditious bracelet helps you progress your slayer faster. It then crumbles to dust.";
test_class.type: String
test_class.var_name: BRACLET_EXPEDITIOUS_V3
test_class.declarator: CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has 12 charges left."
test_class.modifier: private static final
test_class.original_string: private static final String CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has 12 charges left.";
test_class.type: String
test_class.var_name: CHAT_BRACELET_SLAUGHTER_CHARGE
test_class.declarator: CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has 12 charges left."
test_class.modifier: private static final
test_class.original_string: private static final String CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has 12 charges left.";
test_class.type: String
test_class.var_name: CHAT_BRACELET_EXPEDITIOUS_CHARGE
test_class.declarator: CHAT_BRACELET_SLAUGHTER_CHARGE_ONE = "Your bracelet of slaughter has 1 charge left."
test_class.modifier: private static final
test_class.original_string: private static final String CHAT_BRACELET_SLAUGHTER_CHARGE_ONE = "Your bracelet of slaughter has 1 charge left.";
test_class.type: String
test_class.var_name: CHAT_BRACELET_SLAUGHTER_CHARGE_ONE
test_class.declarator: CHAT_BRACELET_EXPEDITIOUS_CHARGE_ONE = "Your expeditious bracelet has 1 charge left."
test_class.modifier: private static final
test_class.original_string: private static final String CHAT_BRACELET_EXPEDITIOUS_CHARGE_ONE = "Your expeditious bracelet has 1 charge left.";
test_class.type: String
test_class.var_name: CHAT_BRACELET_EXPEDITIOUS_CHARGE_ONE
test_class.declarator: BREAK_SLAUGHTER = "The bracelet shatters. Your next bracelet of slaughter<br>will start afresh from 30 charges."
test_class.modifier: private static final
test_class.original_string: private static final String BREAK_SLAUGHTER = "The bracelet shatters. Your next bracelet of slaughter<br>will start afresh from 30 charges.";
test_class.type: String
test_class.var_name: BREAK_SLAUGHTER
test_class.declarator: BREAK_EXPEDITIOUS = "The bracelet shatters. Your next expeditious bracelet<br>will start afresh from 30 charges."
test_class.modifier: private static final
test_class.original_string: private static final String BREAK_EXPEDITIOUS = "The bracelet shatters. Your next expeditious bracelet<br>will start afresh from 30 charges.";
test_class.type: String
test_class.var_name: BREAK_EXPEDITIOUS
test_class.declarator: client
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	Client client;
test_class.type: Client
test_class.var_name: client
test_class.declarator: slayerConfig
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	SlayerConfig slayerConfig;
test_class.type: SlayerConfig
test_class.var_name: slayerConfig
test_class.declarator: overlayManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	OverlayManager overlayManager;
test_class.type: OverlayManager
test_class.var_name: overlayManager
test_class.declarator: overlay
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	SlayerOverlay overlay;
test_class.type: SlayerOverlay
test_class.var_name: overlay
test_class.declarator: infoBoxManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	InfoBoxManager infoBoxManager;
test_class.type: InfoBoxManager
test_class.var_name: infoBoxManager
test_class.declarator: itemManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ItemManager itemManager;
test_class.type: ItemManager
test_class.var_name: itemManager
test_class.declarator: notifier
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	Notifier notifier;
test_class.type: Notifier
test_class.var_name: notifier
test_class.declarator: chatMessageManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ChatMessageManager chatMessageManager;
test_class.type: ChatMessageManager
test_class.var_name: chatMessageManager
test_class.declarator: chatCommandManager
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ChatCommandManager chatCommandManager;
test_class.type: ChatCommandManager
test_class.var_name: chatCommandManager
test_class.declarator: executor
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ScheduledExecutorService executor;
test_class.type: ScheduledExecutorService
test_class.var_name: executor
test_class.declarator: chatClient
test_class.modifier: @Mock
  	@Bind
test_class.original_string: @Mock
  	@Bind
  	ChatClient chatClient;
test_class.type: ChatClient
test_class.var_name: chatClient
test_class.declarator: slayerPlugin
test_class.modifier: @Inject
test_class.original_string: @Inject
  	SlayerPlugin slayerPlugin;
test_class.type: SlayerPlugin
test_class.var_name: slayerPlugin
test_class.file: runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java
test_class.identifier: SlayerPluginTest
test_case.body: @Test
  	public void testZukTaskKill()
  	{
  		final Player player = mock(Player.class);
  		when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
  		when(client.getLocalPlayer()).thenReturn(player);
  
  		StatChanged statChanged = new StatChanged(
  			Skill.SLAYER,
  			110,
  			2,
  			2
  		);
  		slayerPlugin.onStatChanged(statChanged);
  
  		slayerPlugin.setTaskName("TzKal-Zuk");
  		slayerPlugin.setAmount(1);
  
  		// One bat kill
  		statChanged = new StatChanged(
  			Skill.SLAYER,
  			125,
  			2,
  			2
  		);
  		slayerPlugin.onStatChanged(statChanged);
  
  		assertEquals(1, slayerPlugin.getAmount());
  
  		// One Zuk kill
  		statChanged = new StatChanged(
  			Skill.SLAYER,
  			102_015,
  			-1,
  			-1
  		);
  		slayerPlugin.onStatChanged(statChanged);
  
  		assertEquals(0, slayerPlugin.getAmount());
  	}
test_case.class_method_signature: SlayerPluginTest.testZukTaskKill()
test_case.full_signature: @Test public void testZukTaskKill()
test_case.identifier: testZukTaskKill
test_case.invocations: mock thenReturn when getLocalLocation thenReturn when getLocalPlayer onStatChanged setTaskName setAmount onStatChanged assertEquals getAmount onStatChanged assertEquals getAmount
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testZukTaskKill()
focal_class.declarator: CHAT_GEM_PROGRESS_MESSAGE = Pattern.compile("^(?:You're assigned to kill|You have received a new Slayer assignment from .*:) (?:[Tt]he )?(?<name>.+?)(?: (?:in|on|south of) (?:the )?(?<location>[^;]+))?(?:; only | \\()(?<amount>\\d+)(?: more to go\\.|\\))$")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CHAT_GEM_PROGRESS_MESSAGE = Pattern.compile("^(?:You're assigned to kill|You have received a new Slayer assignment from .*:) (?:[Tt]he )?(?<name>.+?)(?: (?:in|on|south of) (?:the )?(?<location>[^;]+))?(?:; only | \\()(?<amount>\\d+)(?: more to go\\.|\\))$");
focal_class.type: Pattern
focal_class.var_name: CHAT_GEM_PROGRESS_MESSAGE
focal_class.declarator: CHAT_GEM_COMPLETE_MESSAGE = "You need something new to hunt."
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_GEM_COMPLETE_MESSAGE = "You need something new to hunt.";
focal_class.type: String
focal_class.var_name: CHAT_GEM_COMPLETE_MESSAGE
focal_class.declarator: CHAT_COMPLETE_MESSAGE = Pattern.compile("(?:\\d+,)*\\d+")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CHAT_COMPLETE_MESSAGE = Pattern.compile("(?:\\d+,)*\\d+");
focal_class.type: Pattern
focal_class.var_name: CHAT_COMPLETE_MESSAGE
focal_class.declarator: CHAT_CANCEL_MESSAGE = "Your task has been cancelled."
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_CANCEL_MESSAGE = "Your task has been cancelled.";
focal_class.type: String
focal_class.var_name: CHAT_CANCEL_MESSAGE
focal_class.declarator: CHAT_CANCEL_MESSAGE_JAD = "You no longer have a slayer task as you left the fight cave."
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_CANCEL_MESSAGE_JAD = "You no longer have a slayer task as you left the fight cave.";
focal_class.type: String
focal_class.var_name: CHAT_CANCEL_MESSAGE_JAD
focal_class.declarator: CHAT_CANCEL_MESSAGE_ZUK = "You no longer have a slayer task as you left the Inferno."
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_CANCEL_MESSAGE_ZUK = "You no longer have a slayer task as you left the Inferno.";
focal_class.type: String
focal_class.var_name: CHAT_CANCEL_MESSAGE_ZUK
focal_class.declarator: CHAT_SUPERIOR_MESSAGE = "A superior foe has appeared..."
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_SUPERIOR_MESSAGE = "A superior foe has appeared...";
focal_class.type: String
focal_class.var_name: CHAT_SUPERIOR_MESSAGE
focal_class.declarator: CHAT_BRACELET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer"
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_BRACELET_SLAUGHTER = "Your bracelet of slaughter prevents your slayer";
focal_class.type: String
focal_class.var_name: CHAT_BRACELET_SLAUGHTER
focal_class.declarator: CHAT_BRACELET_SLAUGHTER_REGEX = Pattern.compile("Your bracelet of slaughter prevents your slayer count from decreasing. It has (\\d{1,2}) charges? left\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CHAT_BRACELET_SLAUGHTER_REGEX = Pattern.compile("Your bracelet of slaughter prevents your slayer count from decreasing. It has (\\d{1,2}) charges? left\\.");
focal_class.type: Pattern
focal_class.var_name: CHAT_BRACELET_SLAUGHTER_REGEX
focal_class.declarator: CHAT_BRACELET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your"
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_BRACELET_EXPEDITIOUS = "Your expeditious bracelet helps you progress your";
focal_class.type: String
focal_class.var_name: CHAT_BRACELET_EXPEDITIOUS
focal_class.declarator: CHAT_BRACELET_EXPEDITIOUS_REGEX = Pattern.compile("Your expeditious bracelet helps you progress your slayer (?:task )?faster. It has (\\d{1,2}) charges? left\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CHAT_BRACELET_EXPEDITIOUS_REGEX = Pattern.compile("Your expeditious bracelet helps you progress your slayer (?:task )?faster. It has (\\d{1,2}) charges? left\\.");
focal_class.type: Pattern
focal_class.var_name: CHAT_BRACELET_EXPEDITIOUS_REGEX
focal_class.declarator: CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has "
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_BRACELET_SLAUGHTER_CHARGE = "Your bracelet of slaughter has ";
focal_class.type: String
focal_class.var_name: CHAT_BRACELET_SLAUGHTER_CHARGE
focal_class.declarator: CHAT_BRACELET_SLAUGHTER_CHARGE_REGEX = Pattern.compile("Your bracelet of slaughter has (\\d{1,2}) charges? left\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CHAT_BRACELET_SLAUGHTER_CHARGE_REGEX = Pattern.compile("Your bracelet of slaughter has (\\d{1,2}) charges? left\\.");
focal_class.type: Pattern
focal_class.var_name: CHAT_BRACELET_SLAUGHTER_CHARGE_REGEX
focal_class.declarator: CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has "
focal_class.modifier: private static final
focal_class.original_string: private static final String CHAT_BRACELET_EXPEDITIOUS_CHARGE = "Your expeditious bracelet has ";
focal_class.type: String
focal_class.var_name: CHAT_BRACELET_EXPEDITIOUS_CHARGE
focal_class.declarator: CHAT_BRACELET_EXPEDITIOUS_CHARGE_REGEX = Pattern.compile("Your expeditious bracelet has (\\d{1,2}) charges? left\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern CHAT_BRACELET_EXPEDITIOUS_CHARGE_REGEX = Pattern.compile("Your expeditious bracelet has (\\d{1,2}) charges? left\\.");
focal_class.type: Pattern
focal_class.var_name: CHAT_BRACELET_EXPEDITIOUS_CHARGE_REGEX
focal_class.declarator: COMBAT_BRACELET_TASK_UPDATE_MESSAGE = Pattern.compile("^You still need to kill (\\d+) monsters to complete your current Slayer assignment")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern COMBAT_BRACELET_TASK_UPDATE_MESSAGE = Pattern.compile("^You still need to kill (\\d+) monsters to complete your current Slayer assignment");
focal_class.type: Pattern
focal_class.var_name: COMBAT_BRACELET_TASK_UPDATE_MESSAGE
focal_class.declarator: NPC_ASSIGN_MESSAGE = Pattern.compile(".*(?:Your new task is to kill|You are to bring balance to)\\s*(?<amount>\\d+) (?<name>.+?)(?: (?:in|on|south of) (?:the )?(?<location>.+))?\\.")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern NPC_ASSIGN_MESSAGE = Pattern.compile(".*(?:Your new task is to kill|You are to bring balance to)\\s*(?<amount>\\d+) (?<name>.+?)(?: (?:in|on|south of) (?:the )?(?<location>.+))?\\.");
focal_class.type: Pattern
focal_class.var_name: NPC_ASSIGN_MESSAGE
focal_class.declarator: NPC_ASSIGN_BOSS_MESSAGE = Pattern.compile("^(?:Excellent\\. )?You're now assigned to (?:kill|bring balance to) (?:the )?(.*) (\\d+) times.*Your reward point tally is (.*)\\.$")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern NPC_ASSIGN_BOSS_MESSAGE = Pattern.compile("^(?:Excellent\\. )?You're now assigned to (?:kill|bring balance to) (?:the )?(.*) (\\d+) times.*Your reward point tally is (.*)\\.$");
focal_class.type: Pattern
focal_class.var_name: NPC_ASSIGN_BOSS_MESSAGE
focal_class.declarator: NPC_ASSIGN_FIRST_MESSAGE = Pattern.compile("^We'll start you off (?:hunting|bringing balance to) (.*), you'll need to kill (\\d*) of them\\.$")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern NPC_ASSIGN_FIRST_MESSAGE = Pattern.compile("^We'll start you off (?:hunting|bringing balance to) (.*), you'll need to kill (\\d*) of them\\.$");
focal_class.type: Pattern
focal_class.var_name: NPC_ASSIGN_FIRST_MESSAGE
focal_class.declarator: NPC_CURRENT_MESSAGE = Pattern.compile("^You're (?:still(?: meant to be)?|currently assigned to) (?:hunting|bringing balance to|kill|bring balance to|slaying) (?<name>.+?)(?: (?:in|on|south of) (?:the )?(?<location>.+))?(?:, with|; (?:you have|only)) (?<amount>\\d+)(?: more)? to go\\..*")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern NPC_CURRENT_MESSAGE = Pattern.compile("^You're (?:still(?: meant to be)?|currently assigned to) (?:hunting|bringing balance to|kill|bring balance to|slaying) (?<name>.+?)(?: (?:in|on|south of) (?:the )?(?<location>.+))?(?:, with|; (?:you have|only)) (?<amount>\\d+)(?: more)? to go\\..*");
focal_class.type: Pattern
focal_class.var_name: NPC_CURRENT_MESSAGE
focal_class.declarator: REWARD_POINTS = Pattern.compile("Reward points: ((?:\\d+,)*\\d+)")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern REWARD_POINTS = Pattern.compile("Reward points: ((?:\\d+,)*\\d+)");
focal_class.type: Pattern
focal_class.var_name: REWARD_POINTS
focal_class.declarator: GROTESQUE_GUARDIANS_REGION = 6727
focal_class.modifier: private static final
focal_class.original_string: private static final int GROTESQUE_GUARDIANS_REGION = 6727;
focal_class.type: int
focal_class.var_name: GROTESQUE_GUARDIANS_REGION
focal_class.declarator: EXPEDITIOUS_CHARGE = 30
focal_class.modifier: private static final
focal_class.original_string: private static final int EXPEDITIOUS_CHARGE = 30;
focal_class.type: int
focal_class.var_name: EXPEDITIOUS_CHARGE
focal_class.declarator: SLAUGHTER_CHARGE = 30
focal_class.modifier: private static final
focal_class.original_string: private static final int SLAUGHTER_CHARGE = 30;
focal_class.type: int
focal_class.var_name: SLAUGHTER_CHARGE
focal_class.declarator: TASK_COMMAND_STRING = "!task"
focal_class.modifier: private static final
focal_class.original_string: private static final String TASK_COMMAND_STRING = "!task";
focal_class.type: String
focal_class.var_name: TASK_COMMAND_STRING
focal_class.declarator: TASK_STRING_VALIDATION = Pattern.compile("[^a-zA-Z0-9' -]")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern TASK_STRING_VALIDATION = Pattern.compile("[^a-zA-Z0-9' -]");
focal_class.type: Pattern
focal_class.var_name: TASK_STRING_VALIDATION
focal_class.declarator: TASK_STRING_MAX_LENGTH = 50
focal_class.modifier: private static final
focal_class.original_string: private static final int TASK_STRING_MAX_LENGTH = 50;
focal_class.type: int
focal_class.var_name: TASK_STRING_MAX_LENGTH
focal_class.declarator: client
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private Client client;
focal_class.type: Client
focal_class.var_name: client
focal_class.declarator: config
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private SlayerConfig config;
focal_class.type: SlayerConfig
focal_class.var_name: config
focal_class.declarator: overlayManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private OverlayManager overlayManager;
focal_class.type: OverlayManager
focal_class.var_name: overlayManager
focal_class.declarator: overlay
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private SlayerOverlay overlay;
focal_class.type: SlayerOverlay
focal_class.var_name: overlay
focal_class.declarator: infoBoxManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private InfoBoxManager infoBoxManager;
focal_class.type: InfoBoxManager
focal_class.var_name: infoBoxManager
focal_class.declarator: itemManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ItemManager itemManager;
focal_class.type: ItemManager
focal_class.var_name: itemManager
focal_class.declarator: notifier
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private Notifier notifier;
focal_class.type: Notifier
focal_class.var_name: notifier
focal_class.declarator: clientThread
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ClientThread clientThread;
focal_class.type: ClientThread
focal_class.var_name: clientThread
focal_class.declarator: targetClickboxOverlay
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private TargetClickboxOverlay targetClickboxOverlay;
focal_class.type: TargetClickboxOverlay
focal_class.var_name: targetClickboxOverlay
focal_class.declarator: targetWeaknessOverlay
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private TargetWeaknessOverlay targetWeaknessOverlay;
focal_class.type: TargetWeaknessOverlay
focal_class.var_name: targetWeaknessOverlay
focal_class.declarator: targetMinimapOverlay
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private TargetMinimapOverlay targetMinimapOverlay;
focal_class.type: TargetMinimapOverlay
focal_class.var_name: targetMinimapOverlay
focal_class.declarator: chatMessageManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ChatMessageManager chatMessageManager;
focal_class.type: ChatMessageManager
focal_class.var_name: chatMessageManager
focal_class.declarator: chatCommandManager
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ChatCommandManager chatCommandManager;
focal_class.type: ChatCommandManager
focal_class.var_name: chatCommandManager
focal_class.declarator: executor
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ScheduledExecutorService executor;
focal_class.type: ScheduledExecutorService
focal_class.var_name: executor
focal_class.declarator: chatClient
focal_class.modifier: @Inject
  	private
focal_class.original_string: @Inject
  	private ChatClient chatClient;
focal_class.type: ChatClient
focal_class.var_name: chatClient
focal_class.declarator: highlightedTargets = new ArrayList<>()
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	private List<NPC> highlightedTargets = new ArrayList<>();
focal_class.type: List<NPC>
focal_class.var_name: highlightedTargets
focal_class.declarator: taggedNpcs = new HashSet<>()
focal_class.modifier: private final
focal_class.original_string: private final Set<NPC> taggedNpcs = new HashSet<>();
focal_class.type: Set<NPC>
focal_class.var_name: taggedNpcs
focal_class.declarator: taggedNpcsDiedPrevTick
focal_class.modifier: private
focal_class.original_string: private int taggedNpcsDiedPrevTick;
focal_class.type: int
focal_class.var_name: taggedNpcsDiedPrevTick
focal_class.declarator: taggedNpcsDiedThisTick
focal_class.modifier: private
focal_class.original_string: private int taggedNpcsDiedThisTick;
focal_class.type: int
focal_class.var_name: taggedNpcsDiedThisTick
focal_class.declarator: amount
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private int amount;
focal_class.type: int
focal_class.var_name: amount
focal_class.declarator: initialAmount
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private int initialAmount;
focal_class.type: int
focal_class.var_name: initialAmount
focal_class.declarator: taskLocation
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private String taskLocation;
focal_class.type: String
focal_class.var_name: taskLocation
focal_class.declarator: expeditiousChargeCount
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private int expeditiousChargeCount;
focal_class.type: int
focal_class.var_name: expeditiousChargeCount
focal_class.declarator: slaughterChargeCount
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private int slaughterChargeCount;
focal_class.type: int
focal_class.var_name: slaughterChargeCount
focal_class.declarator: taskName
focal_class.modifier: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private
focal_class.original_string: @Getter(AccessLevel.PACKAGE)
  	@Setter(AccessLevel.PACKAGE)
  	private String taskName;
focal_class.type: String
focal_class.var_name: taskName
focal_class.declarator: counter
focal_class.modifier: private
focal_class.original_string: private TaskCounter counter;
focal_class.type: TaskCounter
focal_class.var_name: counter
focal_class.declarator: cachedXp = -1
focal_class.modifier: private
focal_class.original_string: private int cachedXp = -1;
focal_class.type: int
focal_class.var_name: cachedXp
focal_class.declarator: infoTimer
focal_class.modifier: private
focal_class.original_string: private Instant infoTimer;
focal_class.type: Instant
focal_class.var_name: infoTimer
focal_class.declarator: loginFlag
focal_class.modifier: private
focal_class.original_string: private boolean loginFlag;
focal_class.type: boolean
focal_class.var_name: loginFlag
focal_class.declarator: targetNames = new ArrayList<>()
focal_class.modifier: private
focal_class.original_string: private List<String> targetNames = new ArrayList<>();
focal_class.type: List<String>
focal_class.var_name: targetNames
focal_class.file: runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java
focal_class.identifier: SlayerPlugin
focal_class.class_method_signature: SlayerPlugin.startUp()
focal_class.full_signature: @Override protected void startUp()
focal_class.identifier: startUp
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void startUp()
focal_class.class_method_signature: SlayerPlugin.shutDown()
focal_class.full_signature: @Override protected void shutDown()
focal_class.identifier: shutDown
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutDown()
focal_class.class_method_signature: SlayerPlugin.provideSlayerConfig(ConfigManager configManager)
focal_class.full_signature: @Provides SlayerConfig provideSlayerConfig(ConfigManager configManager)
focal_class.identifier: provideSlayerConfig
focal_class.modifiers: @Provides
focal_class.parameters: (ConfigManager configManager)
focal_class.return: SlayerConfig
focal_class.signature: SlayerConfig provideSlayerConfig(ConfigManager configManager)
focal_class.class_method_signature: SlayerPlugin.onGameStateChanged(GameStateChanged event)
focal_class.full_signature: @Subscribe public void onGameStateChanged(GameStateChanged event)
focal_class.identifier: onGameStateChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (GameStateChanged event)
focal_class.return: void
focal_class.signature: void onGameStateChanged(GameStateChanged event)
focal_class.class_method_signature: SlayerPlugin.save()
focal_class.full_signature: private void save()
focal_class.identifier: save
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void save()
focal_class.class_method_signature: SlayerPlugin.onNpcSpawned(NpcSpawned npcSpawned)
focal_class.full_signature: @Subscribe public void onNpcSpawned(NpcSpawned npcSpawned)
focal_class.identifier: onNpcSpawned
focal_class.modifiers: @Subscribe public
focal_class.parameters: (NpcSpawned npcSpawned)
focal_class.return: void
focal_class.signature: void onNpcSpawned(NpcSpawned npcSpawned)
focal_class.class_method_signature: SlayerPlugin.onNpcDespawned(NpcDespawned npcDespawned)
focal_class.full_signature: @Subscribe public void onNpcDespawned(NpcDespawned npcDespawned)
focal_class.identifier: onNpcDespawned
focal_class.modifiers: @Subscribe public
focal_class.parameters: (NpcDespawned npcDespawned)
focal_class.return: void
focal_class.signature: void onNpcDespawned(NpcDespawned npcDespawned)
focal_class.class_method_signature: SlayerPlugin.onGameTick(GameTick tick)
focal_class.full_signature: @Subscribe public void onGameTick(GameTick tick)
focal_class.identifier: onGameTick
focal_class.modifiers: @Subscribe public
focal_class.parameters: (GameTick tick)
focal_class.return: void
focal_class.signature: void onGameTick(GameTick tick)
focal_class.class_method_signature: SlayerPlugin.onChatMessage(ChatMessage event)
focal_class.full_signature: @Subscribe public void onChatMessage(ChatMessage event)
focal_class.identifier: onChatMessage
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ChatMessage event)
focal_class.return: void
focal_class.signature: void onChatMessage(ChatMessage event)
focal_class.class_method_signature: SlayerPlugin.onStatChanged(StatChanged statChanged)
focal_class.full_signature: @Subscribe public void onStatChanged(StatChanged statChanged)
focal_class.identifier: onStatChanged
focal_class.modifiers: @Subscribe public
focal_class.parameters: (StatChanged statChanged)
focal_class.return: void
focal_class.signature: void onStatChanged(StatChanged statChanged)
focal_class.class_method_signature: SlayerPlugin.onHitsplatApplied(HitsplatApplied hitsplatApplied)
focal_class.full_signature: @Subscribe public void onHitsplatApplied(HitsplatApplied hitsplatApplied)
focal_class.identifier: onHitsplatApplied
focal_class.modifiers: @Subscribe public
focal_class.parameters: (HitsplatApplied hitsplatApplied)
focal_class.return: void
focal_class.signature: void onHitsplatApplied(HitsplatApplied hitsplatApplied)
focal_class.class_method_signature: SlayerPlugin.onActorDeath(ActorDeath actorDeath)
focal_class.full_signature: @Subscribe public void onActorDeath(ActorDeath actorDeath)
focal_class.identifier: onActorDeath
focal_class.modifiers: @Subscribe public
focal_class.parameters: (ActorDeath actorDeath)
focal_class.return: void
focal_class.signature: void onActorDeath(ActorDeath actorDeath)
focal_class.class_method_signature: SlayerPlugin.onConfigChanged(ConfigChanged event)
focal_class.full_signature: @Subscribe private void onConfigChanged(ConfigChanged event)
focal_class.identifier: onConfigChanged
focal_class.modifiers: @Subscribe private
focal_class.parameters: (ConfigChanged event)
focal_class.return: void
focal_class.signature: void onConfigChanged(ConfigChanged event)
focal_class.class_method_signature: SlayerPlugin.killed(int amt)
focal_class.full_signature: @VisibleForTesting void killed(int amt)
focal_class.identifier: killed
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (int amt)
focal_class.return: void
focal_class.signature: void killed(int amt)
focal_class.class_method_signature: SlayerPlugin.doubleTroubleExtraKill()
focal_class.full_signature: private boolean doubleTroubleExtraKill()
focal_class.identifier: doubleTroubleExtraKill
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean doubleTroubleExtraKill()
focal_class.class_method_signature: SlayerPlugin.isTarget(NPC npc)
focal_class.full_signature: private boolean isTarget(NPC npc)
focal_class.identifier: isTarget
focal_class.modifiers: private
focal_class.parameters: (NPC npc)
focal_class.return: boolean
focal_class.signature: boolean isTarget(NPC npc)
focal_class.class_method_signature: SlayerPlugin.rebuildTargetNames(Task task)
focal_class.full_signature: private void rebuildTargetNames(Task task)
focal_class.identifier: rebuildTargetNames
focal_class.modifiers: private
focal_class.parameters: (Task task)
focal_class.return: void
focal_class.signature: void rebuildTargetNames(Task task)
focal_class.class_method_signature: SlayerPlugin.rebuildTargetList()
focal_class.full_signature: private void rebuildTargetList()
focal_class.identifier: rebuildTargetList
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void rebuildTargetList()
focal_class.class_method_signature: SlayerPlugin.setTask(String name, int amt, int initAmt)
focal_class.full_signature: private void setTask(String name, int amt, int initAmt)
focal_class.identifier: setTask
focal_class.modifiers: private
focal_class.parameters: (String name, int amt, int initAmt)
focal_class.return: void
focal_class.signature: void setTask(String name, int amt, int initAmt)
focal_class.class_method_signature: SlayerPlugin.setTask(String name, int amt, int initAmt, String location)
focal_class.full_signature: private void setTask(String name, int amt, int initAmt, String location)
focal_class.identifier: setTask
focal_class.modifiers: private
focal_class.parameters: (String name, int amt, int initAmt, String location)
focal_class.return: void
focal_class.signature: void setTask(String name, int amt, int initAmt, String location)
focal_class.class_method_signature: SlayerPlugin.setTask(String name, int amt, int initAmt, String location, boolean addCounter)
focal_class.full_signature: private void setTask(String name, int amt, int initAmt, String location, boolean addCounter)
focal_class.identifier: setTask
focal_class.modifiers: private
focal_class.parameters: (String name, int amt, int initAmt, String location, boolean addCounter)
focal_class.return: void
focal_class.signature: void setTask(String name, int amt, int initAmt, String location, boolean addCounter)
focal_class.class_method_signature: SlayerPlugin.addCounter()
focal_class.full_signature: private void addCounter()
focal_class.identifier: addCounter
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void addCounter()
focal_class.class_method_signature: SlayerPlugin.removeCounter()
focal_class.full_signature: private void removeCounter()
focal_class.identifier: removeCounter
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void removeCounter()
focal_class.class_method_signature: SlayerPlugin.taskLookup(ChatMessage chatMessage, String message)
focal_class.full_signature:  void taskLookup(ChatMessage chatMessage, String message)
focal_class.identifier: taskLookup
focal_class.parameters: (ChatMessage chatMessage, String message)
focal_class.return: void
focal_class.signature: void taskLookup(ChatMessage chatMessage, String message)
focal_class.class_method_signature: SlayerPlugin.taskSubmit(ChatInput chatInput, String value)
focal_class.full_signature: private boolean taskSubmit(ChatInput chatInput, String value)
focal_class.identifier: taskSubmit
focal_class.modifiers: private
focal_class.parameters: (ChatInput chatInput, String value)
focal_class.return: boolean
focal_class.signature: boolean taskSubmit(ChatInput chatInput, String value)
focal_class.class_method_signature: SlayerPlugin.capsString(String str)
focal_class.full_signature: private String capsString(String str)
focal_class.identifier: capsString
focal_class.modifiers: private
focal_class.parameters: (String str)
focal_class.return: String
focal_class.signature: String capsString(String str)
focal_class.superclass: extends Plugin
focal_method.body: @Subscribe
  	public void onStatChanged(StatChanged statChanged)
  	{
  		if (statChanged.getSkill() != SLAYER)
  		{
  			return;
  		}
  
  		int slayerExp = statChanged.getXp();
  
  		if (slayerExp <= cachedXp)
  		{
  			return;
  		}
  
  		if (cachedXp == -1)
  		{
  			// this is the initial xp sent on login
  			cachedXp = slayerExp;
  			return;
  		}
  
  		final int delta = slayerExp - cachedXp;
  		cachedXp = slayerExp;
  
  		log.debug("Slayer xp change delta: {}, killed npcs: {}", delta, taggedNpcsDiedPrevTick);
  
  		final Task task = Task.getTask(taskName);
  		if (task != null && task.getExpectedKillExp() > 0)
  		{
  			// Only decrement a kill if the xp drop matches the expected drop. This is just for Tzhaar tasks.
  			if (task.getExpectedKillExp() == delta)
  			{
  				killed(1);
  			}
  		}
  		else
  		{
  			// This is at least one kill, but if we observe multiple tagged NPCs dieing on the previous tick, count them
  			// instead.
  			killed(max(taggedNpcsDiedPrevTick, 1));
  		}
  	}
focal_method.class_method_signature: SlayerPlugin.onStatChanged(StatChanged statChanged)
focal_method.full_signature: @Subscribe public void onStatChanged(StatChanged statChanged)
focal_method.identifier: onStatChanged
focal_method.invocations: getSkill getXp debug getTask getExpectedKillExp getExpectedKillExp killed killed max
focal_method.modifiers: @Subscribe public
focal_method.parameters: (StatChanged statChanged)
focal_method.return: void
focal_method.signature: void onStatChanged(StatChanged statChanged)