slayerplugin: Fix first slayer kill not being registered

Because a user can have 0 slayer experience on a new account, we cannot
rely on 0 as the pre-login value. Prior to this change, a player getting
their first slayer kill in the described scenario would cause it not to
be counted toward the tracked task.
This commit is contained in:
Jordan Atwood
2019-07-13 00:00:57 -07:00
committed by Adam
parent d8be3b85cf
commit 664ab26de9
2 changed files with 38 additions and 11 deletions

View File

@@ -681,4 +681,26 @@ public class SlayerPluginTest
verify(chatMessageManager, never()).update(any(MessageNode.class));
}
@Test
public void testNewAccountSlayerKill()
{
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);
slayerPlugin.setTaskName("Bears");
slayerPlugin.setAmount(35);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(0);
slayerPlugin.onExperienceChanged(experienceChanged);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(27);
slayerPlugin.onExperienceChanged(experienceChanged);
assertEquals(34, slayerPlugin.getAmount());
}
}