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:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user