slayer plugin: fix unknown tasks not decrementing counter

This commit is contained in:
Alexsuperfly
2019-08-19 12:47:33 -04:00
committed by Adam
parent c8ffa3994d
commit dea4972c00
2 changed files with 49 additions and 6 deletions

View File

@@ -537,12 +537,9 @@ public class SlayerPlugin extends Plugin
final Task task = Task.getTask(taskName);
if (task == null)
{
return;
}
final int taskKillExp = task.getExpectedKillExp();
// null tasks are technically valid, it only means they arent explicitly defined in the Task enum
// allow them through so that if there is a task capture failure the counter will still work
final int taskKillExp = task != null ? task.getExpectedKillExp() : 0;
// 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.

View File

@@ -420,6 +420,52 @@ public class SlayerPluginTest
verifyNoMoreInteractions(notifier);
}
@Test
public void testCorrectlyCapturedTaskKill()
{
final Player player = mock(Player.class);
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
when(client.getLocalPlayer()).thenReturn(player);
final ExperienceChanged experienceChanged = new ExperienceChanged();
experienceChanged.setSkill(Skill.SLAYER);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100);
slayerPlugin.onExperienceChanged(experienceChanged);
slayerPlugin.setTaskName("Dagannoth");
slayerPlugin.setAmount(143);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110);
slayerPlugin.onExperienceChanged(experienceChanged);
assertEquals(142, slayerPlugin.getAmount());
}
@Test
public void testIncorrectlyCapturedTaskKill()
{
final Player player = mock(Player.class);
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
when(client.getLocalPlayer()).thenReturn(player);
final ExperienceChanged experienceChanged = new ExperienceChanged();
experienceChanged.setSkill(Skill.SLAYER);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100);
slayerPlugin.onExperienceChanged(experienceChanged);
slayerPlugin.setTaskName("Monster");
slayerPlugin.setAmount(98);
assert Task.getTask("Monster") == null;
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110);
slayerPlugin.onExperienceChanged(experienceChanged);
assertEquals(97, slayerPlugin.getAmount());
}
@Test
public void testJadTaskKill()
{