client: update for new skill change event

This commit is contained in:
Adam
2019-11-04 09:58:20 -05:00
parent 5b7423bfee
commit eea61cdc8e
11 changed files with 165 additions and 115 deletions

View File

@@ -43,12 +43,10 @@ import net.runelite.api.Tile;
import net.runelite.api.TileItem; import net.runelite.api.TileItem;
import net.runelite.api.TileObject; import net.runelite.api.TileObject;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.DecorativeObjectChanged; import net.runelite.api.events.DecorativeObjectChanged;
import net.runelite.api.events.DecorativeObjectDespawned; import net.runelite.api.events.DecorativeObjectDespawned;
import net.runelite.api.events.DecorativeObjectSpawned; import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameObjectChanged; import net.runelite.api.events.GameObjectChanged;
import net.runelite.api.events.GameObjectDespawned; import net.runelite.api.events.GameObjectDespawned;
import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameObjectSpawned;
@@ -59,6 +57,7 @@ import net.runelite.api.events.GroundObjectDespawned;
import net.runelite.api.events.GroundObjectSpawned; import net.runelite.api.events.GroundObjectSpawned;
import net.runelite.api.events.ItemDespawned; import net.runelite.api.events.ItemDespawned;
import net.runelite.api.events.ItemSpawned; import net.runelite.api.events.ItemSpawned;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WallObjectChanged; import net.runelite.api.events.WallObjectChanged;
import net.runelite.api.events.WallObjectDespawned; import net.runelite.api.events.WallObjectDespawned;
import net.runelite.api.events.WallObjectSpawned; import net.runelite.api.events.WallObjectSpawned;
@@ -181,9 +180,16 @@ public class AgilityPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onExperienceChanged(ExperienceChanged event) public void onStatChanged(StatChanged statChanged)
{ {
if (event.getSkill() != AGILITY || !config.showLapCount()) if (statChanged.getSkill() != AGILITY)
{
return;
}
agilityLevel = statChanged.getBoostedLevel();
if (!config.showLapCount())
{ {
return; return;
} }
@@ -216,17 +222,6 @@ public class AgilityPlugin extends Plugin
} }
} }
@Subscribe
public void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged)
{
Skill skill = boostedLevelChanged.getSkill();
if (skill == AGILITY)
{
agilityLevel = client.getBoostedSkillLevel(skill);
}
}
@Subscribe @Subscribe
public void onItemSpawned(ItemSpawned itemSpawned) public void onItemSpawned(ItemSpawned itemSpawned)
{ {

View File

@@ -36,10 +36,10 @@ import net.runelite.api.Client;
import net.runelite.api.Constants; import net.runelite.api.Constants;
import net.runelite.api.Prayer; import net.runelite.api.Prayer;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.client.Notifier; import net.runelite.client.Notifier;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -177,9 +177,9 @@ public class BoostsPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onBoostedLevelChanged(BoostedLevelChanged boostedLevelChanged) public void onStatChanged(StatChanged statChanged)
{ {
Skill skill = boostedLevelChanged.getSkill(); Skill skill = statChanged.getSkill();
if (!BOOSTABLE_COMBAT_SKILLS.contains(skill) && !BOOSTABLE_NON_COMBAT_SKILLS.contains(skill)) if (!BOOSTABLE_COMBAT_SKILLS.contains(skill) && !BOOSTABLE_NON_COMBAT_SKILLS.contains(skill))
{ {

View File

@@ -43,10 +43,9 @@ import net.runelite.api.NPC;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.CommandExecuted; import net.runelite.api.events.CommandExecuted;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.VarbitChanged;
import net.runelite.api.kit.KitType; import net.runelite.api.kit.KitType;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
@@ -285,9 +284,13 @@ public class DevToolsPlugin extends Plugin
client.queueChangedSkill(skill); client.queueChangedSkill(skill);
ExperienceChanged experienceChanged = new ExperienceChanged(); StatChanged statChanged = new StatChanged(
experienceChanged.setSkill(skill); skill,
eventBus.post(experienceChanged); totalXp,
level,
level
);
eventBus.post(statChanged);
break; break;
} }
case "setstat": case "setstat":
@@ -304,13 +307,13 @@ public class DevToolsPlugin extends Plugin
client.queueChangedSkill(skill); client.queueChangedSkill(skill);
ExperienceChanged experienceChanged = new ExperienceChanged(); StatChanged statChanged = new StatChanged(
experienceChanged.setSkill(skill); skill,
eventBus.post(experienceChanged); xp,
level,
BoostedLevelChanged boostedLevelChanged = new BoostedLevelChanged(); level
boostedLevelChanged.setSkill(skill); );
eventBus.post(boostedLevelChanged); eventBus.post(statChanged);
break; break;
} }
case "anim": case "anim":

View File

@@ -44,8 +44,8 @@ import net.runelite.api.Skill;
import net.runelite.api.WorldType; import net.runelite.api.WorldType;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.VarbitChanged;
import net.runelite.client.RuneLiteProperties; import net.runelite.client.RuneLiteProperties;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
@@ -181,17 +181,18 @@ public class DiscordPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onExperienceChanged(ExperienceChanged event) public void onStatChanged(StatChanged statChanged)
{ {
final int exp = client.getSkillExperience(event.getSkill()); final Skill skill = statChanged.getSkill();
final Integer previous = skillExp.put(event.getSkill(), exp); final int exp = statChanged.getXp();
final Integer previous = skillExp.put(skill, exp);
if (previous == null || previous >= exp) if (previous == null || previous >= exp)
{ {
return; return;
} }
final DiscordGameEventType discordGameEventType = DiscordGameEventType.fromSkill(event.getSkill()); final DiscordGameEventType discordGameEventType = DiscordGameEventType.fromSkill(skill);
if (discordGameEventType != null && config.showSkillingActivity()) if (discordGameEventType != null && config.showSkillingActivity())
{ {

View File

@@ -35,8 +35,8 @@ import static net.runelite.api.ScriptID.XPDROP_DISABLED;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.SpriteID; import net.runelite.api.SpriteID;
import net.runelite.api.Varbits; import net.runelite.api.Varbits;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WidgetHiddenChanged; import net.runelite.api.events.WidgetHiddenChanged;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetID;
@@ -230,10 +230,10 @@ public class XpDropPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onExperienceChanged(ExperienceChanged event) public void onStatChanged(StatChanged statChanged)
{ {
final Skill skill = event.getSkill(); final Skill skill = statChanged.getSkill();
final int xp = client.getSkillExperience(skill); final int xp = statChanged.getXp();
lastSkill = skill; lastSkill = skill;

View File

@@ -55,11 +55,11 @@ import static net.runelite.api.Skill.SLAYER;
import net.runelite.api.coords.WorldPoint; import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.NpcSpawned; import net.runelite.api.events.NpcSpawned;
import net.runelite.api.events.StatChanged;
import net.runelite.api.vars.SlayerUnlock; import net.runelite.api.vars.SlayerUnlock;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
@@ -519,14 +519,14 @@ public class SlayerPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onExperienceChanged(ExperienceChanged event) public void onStatChanged(StatChanged statChanged)
{ {
if (event.getSkill() != SLAYER) if (statChanged.getSkill() != SLAYER)
{ {
return; return;
} }
int slayerExp = client.getSkillExperience(SLAYER); int slayerExp = statChanged.getXp();
if (slayerExp <= cachedXp) if (slayerExp <= cachedXp)
{ {

View File

@@ -30,13 +30,12 @@ import com.google.inject.Provides;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.util.Arrays; import java.util.Arrays;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.Experience;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.Skill;
import net.runelite.api.Quest; import net.runelite.api.Quest;
import net.runelite.api.QuestState; import net.runelite.api.QuestState;
import net.runelite.api.Skill;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WidgetLoaded; import net.runelite.api.events.WidgetLoaded;
import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetID;
import net.runelite.client.callback.ClientThread; import net.runelite.client.callback.ClientThread;
@@ -168,25 +167,29 @@ public class WorldMapPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onExperienceChanged(ExperienceChanged event) public void onStatChanged(StatChanged statChanged)
{ {
if (event.getSkill() == Skill.AGILITY) switch (statChanged.getSkill())
{ {
int newAgilityLevel = Experience.getLevelForXp(client.getSkillExperience(Skill.AGILITY)); case AGILITY:
if (newAgilityLevel != agilityLevel)
{ {
agilityLevel = newAgilityLevel; int newAgilityLevel = statChanged.getLevel();
updateAgilityIcons(); if (newAgilityLevel != agilityLevel)
{
agilityLevel = newAgilityLevel;
updateAgilityIcons();
}
break;
} }
} case WOODCUTTING:
if (event.getSkill() == Skill.WOODCUTTING)
{
int newWoodcutLevel = Experience.getLevelForXp(client.getSkillExperience(Skill.WOODCUTTING));
if (newWoodcutLevel != woodcuttingLevel)
{ {
woodcuttingLevel = newWoodcutLevel; int newWoodcutLevel = statChanged.getLevel();
updateRareTreeIcons(); if (newWoodcutLevel != woodcuttingLevel)
{
woodcuttingLevel = newWoodcutLevel;
updateRareTreeIcons();
}
break;
} }
} }
} }

View File

@@ -35,8 +35,8 @@ import lombok.Getter;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.Experience; import net.runelite.api.Experience;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -93,11 +93,11 @@ public class XpGlobesPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onExperienceChanged(ExperienceChanged event) public void onStatChanged(StatChanged statChanged)
{ {
Skill skill = event.getSkill(); Skill skill = statChanged.getSkill();
int currentXp = client.getSkillExperience(skill); int currentXp = statChanged.getXp();
int currentLevel = Experience.getLevelForXp(currentXp); int currentLevel = statChanged.getLevel();
int skillIdx = skill.ordinal(); int skillIdx = skill.ordinal();
XpGlobe cachedGlobe = globeCache[skillIdx]; XpGlobe cachedGlobe = globeCache[skillIdx];

View File

@@ -51,12 +51,12 @@ import net.runelite.api.Player;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.VarPlayer; import net.runelite.api.VarPlayer;
import net.runelite.api.WorldType; import net.runelite.api.WorldType;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.events.MenuOptionClicked;
import net.runelite.api.events.NpcDespawned; import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.StatChanged;
import net.runelite.api.widgets.WidgetID; import net.runelite.api.widgets.WidgetID;
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
@@ -341,11 +341,11 @@ public class XpTrackerPlugin extends Plugin
} }
@Subscribe @Subscribe
public void onExperienceChanged(ExperienceChanged event) public void onStatChanged(StatChanged statChanged)
{ {
final Skill skill = event.getSkill(); final Skill skill = statChanged.getSkill();
final int currentXp = client.getSkillExperience(skill); final int currentXp = statChanged.getXp();
final int currentLevel = Experience.getLevelForXp(currentXp); final int currentLevel = statChanged.getLevel();
final VarPlayer startGoal = startGoalVarpForSkill(skill); final VarPlayer startGoal = startGoalVarpForSkill(skill);
final VarPlayer endGoal = endGoalVarpForSkill(skill); final VarPlayer endGoal = endGoalVarpForSkill(skill);
final int startGoalXp = startGoal != null ? client.getVar(startGoal) : -1; final int startGoalXp = startGoal != null ? client.getVar(startGoal) : -1;

View File

@@ -39,9 +39,9 @@ import net.runelite.api.Player;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.LocalPoint;
import net.runelite.api.events.ChatMessage; import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.Notifier; import net.runelite.client.Notifier;
@@ -429,17 +429,24 @@ public class SlayerPluginTest
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0)); when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
when(client.getLocalPlayer()).thenReturn(player); when(client.getLocalPlayer()).thenReturn(player);
final ExperienceChanged experienceChanged = new ExperienceChanged(); StatChanged statChanged = new StatChanged(
experienceChanged.setSkill(Skill.SLAYER); Skill.SLAYER,
100,
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100); 2,
slayerPlugin.onExperienceChanged(experienceChanged); 2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("Dagannoth"); slayerPlugin.setTaskName("Dagannoth");
slayerPlugin.setAmount(143); slayerPlugin.setAmount(143);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110); statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
110,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(142, slayerPlugin.getAmount()); assertEquals(142, slayerPlugin.getAmount());
} }
@@ -451,19 +458,26 @@ public class SlayerPluginTest
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0)); when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
when(client.getLocalPlayer()).thenReturn(player); when(client.getLocalPlayer()).thenReturn(player);
final ExperienceChanged experienceChanged = new ExperienceChanged(); StatChanged statChanged = new StatChanged(
experienceChanged.setSkill(Skill.SLAYER); Skill.SLAYER,
100,
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100); 2,
slayerPlugin.onExperienceChanged(experienceChanged); 2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("Monster"); slayerPlugin.setTaskName("Monster");
slayerPlugin.setAmount(98); slayerPlugin.setAmount(98);
assert Task.getTask("Monster") == null; assert Task.getTask("Monster") == null;
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110); statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
110,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(97, slayerPlugin.getAmount()); assertEquals(97, slayerPlugin.getAmount());
} }
@@ -475,24 +489,36 @@ public class SlayerPluginTest
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0)); when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
when(client.getLocalPlayer()).thenReturn(player); when(client.getLocalPlayer()).thenReturn(player);
final ExperienceChanged experienceChanged = new ExperienceChanged(); StatChanged statChanged = new StatChanged(
experienceChanged.setSkill(Skill.SLAYER); Skill.SLAYER,
100,
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100); 2,
slayerPlugin.onExperienceChanged(experienceChanged); 2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("TzTok-Jad"); slayerPlugin.setTaskName("TzTok-Jad");
slayerPlugin.setAmount(1); slayerPlugin.setAmount(1);
// One bat kill // One bat kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110); statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
110,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(1, slayerPlugin.getAmount()); assertEquals(1, slayerPlugin.getAmount());
// One Jad kill // One Jad kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(25_360); statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
25360,
-1,
-1
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(0, slayerPlugin.getAmount()); assertEquals(0, slayerPlugin.getAmount());
} }
@@ -504,24 +530,36 @@ public class SlayerPluginTest
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0)); when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
when(client.getLocalPlayer()).thenReturn(player); when(client.getLocalPlayer()).thenReturn(player);
final ExperienceChanged experienceChanged = new ExperienceChanged(); StatChanged statChanged = new StatChanged(
experienceChanged.setSkill(Skill.SLAYER); Skill.SLAYER,
110,
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(100); 2,
slayerPlugin.onExperienceChanged(experienceChanged); 2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("TzKal-Zuk"); slayerPlugin.setTaskName("TzKal-Zuk");
slayerPlugin.setAmount(1); slayerPlugin.setAmount(1);
// One bat kill // One bat kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(125); statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
125,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(1, slayerPlugin.getAmount()); assertEquals(1, slayerPlugin.getAmount());
// One Zuk kill // One Zuk kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(102_015); statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
102_015,
-1,
-1
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(0, slayerPlugin.getAmount()); assertEquals(0, slayerPlugin.getAmount());
} }
@@ -691,17 +729,24 @@ public class SlayerPluginTest
when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0)); when(player.getLocalLocation()).thenReturn(new LocalPoint(0, 0));
when(client.getLocalPlayer()).thenReturn(player); when(client.getLocalPlayer()).thenReturn(player);
final ExperienceChanged experienceChanged = new ExperienceChanged();
experienceChanged.setSkill(Skill.SLAYER);
slayerPlugin.setTaskName("Bears"); slayerPlugin.setTaskName("Bears");
slayerPlugin.setAmount(35); slayerPlugin.setAmount(35);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(0); StatChanged statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
0,
1,
1
);
slayerPlugin.onStatChanged(statChanged);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(27); statChanged = new StatChanged(
slayerPlugin.onExperienceChanged(experienceChanged); Skill.SLAYER,
27,
1,
1
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(34, slayerPlugin.getAmount()); assertEquals(34, slayerPlugin.getAmount());
} }

View File

@@ -32,9 +32,9 @@ import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.Skill; import net.runelite.api.Skill;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.client.game.NPCManager; import net.runelite.client.game.NPCManager;
import net.runelite.client.game.SkillIconManager; import net.runelite.client.game.SkillIconManager;
import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.ClientToolbar;
@@ -101,10 +101,13 @@ public class XpTrackerPluginTest
xpTrackerPlugin.onGameTick(new GameTick()); xpTrackerPlugin.onGameTick(new GameTick());
// Gain attack xp // Gain attack xp
when(client.getSkillExperience(Skill.ATTACK)).thenReturn(100); StatChanged statChanged = new StatChanged(
ExperienceChanged experienceChanged = new ExperienceChanged(); Skill.ATTACK,
experienceChanged.setSkill(Skill.ATTACK); 100,
xpTrackerPlugin.onExperienceChanged(experienceChanged); 2,
2
);
xpTrackerPlugin.onStatChanged(statChanged);
// Offline gain // Offline gain
when(client.getSkillExperience(Skill.ATTACK)).thenReturn(42000); when(client.getSkillExperience(Skill.ATTACK)).thenReturn(42000);