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.TileObject;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.DecorativeObjectChanged;
import net.runelite.api.events.DecorativeObjectDespawned;
import net.runelite.api.events.DecorativeObjectSpawned;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameObjectChanged;
import net.runelite.api.events.GameObjectDespawned;
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.ItemDespawned;
import net.runelite.api.events.ItemSpawned;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WallObjectChanged;
import net.runelite.api.events.WallObjectDespawned;
import net.runelite.api.events.WallObjectSpawned;
@@ -181,9 +180,16 @@ public class AgilityPlugin extends Plugin
}
@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;
}
@@ -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
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.Prayer;
import net.runelite.api.Skill;
import net.runelite.api.events.BoostedLevelChanged;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.client.Notifier;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
@@ -177,9 +177,9 @@ public class BoostsPlugin extends Plugin
}
@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))
{

View File

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

View File

@@ -44,8 +44,8 @@ import net.runelite.api.Skill;
import net.runelite.api.WorldType;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.VarbitChanged;
import net.runelite.client.RuneLiteProperties;
import net.runelite.client.config.ConfigManager;
@@ -181,17 +181,18 @@ public class DiscordPlugin extends Plugin
}
@Subscribe
public void onExperienceChanged(ExperienceChanged event)
public void onStatChanged(StatChanged statChanged)
{
final int exp = client.getSkillExperience(event.getSkill());
final Integer previous = skillExp.put(event.getSkill(), exp);
final Skill skill = statChanged.getSkill();
final int exp = statChanged.getXp();
final Integer previous = skillExp.put(skill, exp);
if (previous == null || previous >= exp)
{
return;
}
final DiscordGameEventType discordGameEventType = DiscordGameEventType.fromSkill(event.getSkill());
final DiscordGameEventType discordGameEventType = DiscordGameEventType.fromSkill(skill);
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.SpriteID;
import net.runelite.api.Varbits;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.api.events.WidgetHiddenChanged;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetID;
@@ -230,10 +230,10 @@ public class XpDropPlugin extends Plugin
}
@Subscribe
public void onExperienceChanged(ExperienceChanged event)
public void onStatChanged(StatChanged statChanged)
{
final Skill skill = event.getSkill();
final int xp = client.getSkillExperience(skill);
final Skill skill = statChanged.getSkill();
final int xp = statChanged.getXp();
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.events.ChatMessage;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.NpcSpawned;
import net.runelite.api.events.StatChanged;
import net.runelite.api.vars.SlayerUnlock;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
@@ -519,14 +519,14 @@ public class SlayerPlugin extends Plugin
}
@Subscribe
public void onExperienceChanged(ExperienceChanged event)
public void onStatChanged(StatChanged statChanged)
{
if (event.getSkill() != SLAYER)
if (statChanged.getSkill() != SLAYER)
{
return;
}
int slayerExp = client.getSkillExperience(SLAYER);
int slayerExp = statChanged.getXp();
if (slayerExp <= cachedXp)
{

View File

@@ -30,13 +30,12 @@ import com.google.inject.Provides;
import java.awt.image.BufferedImage;
import java.util.Arrays;
import net.runelite.api.Client;
import net.runelite.api.Experience;
import net.runelite.api.GameState;
import net.runelite.api.Skill;
import net.runelite.api.Quest;
import net.runelite.api.QuestState;
import net.runelite.api.Skill;
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.widgets.WidgetID;
import net.runelite.client.callback.ClientThread;
@@ -168,25 +167,29 @@ public class WorldMapPlugin extends Plugin
}
@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));
if (newAgilityLevel != agilityLevel)
case AGILITY:
{
agilityLevel = newAgilityLevel;
updateAgilityIcons();
int newAgilityLevel = statChanged.getLevel();
if (newAgilityLevel != agilityLevel)
{
agilityLevel = newAgilityLevel;
updateAgilityIcons();
}
break;
}
}
if (event.getSkill() == Skill.WOODCUTTING)
{
int newWoodcutLevel = Experience.getLevelForXp(client.getSkillExperience(Skill.WOODCUTTING));
if (newWoodcutLevel != woodcuttingLevel)
case WOODCUTTING:
{
woodcuttingLevel = newWoodcutLevel;
updateRareTreeIcons();
int newWoodcutLevel = statChanged.getLevel();
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.Experience;
import net.runelite.api.Skill;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.StatChanged;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
@@ -93,11 +93,11 @@ public class XpGlobesPlugin extends Plugin
}
@Subscribe
public void onExperienceChanged(ExperienceChanged event)
public void onStatChanged(StatChanged statChanged)
{
Skill skill = event.getSkill();
int currentXp = client.getSkillExperience(skill);
int currentLevel = Experience.getLevelForXp(currentXp);
Skill skill = statChanged.getSkill();
int currentXp = statChanged.getXp();
int currentLevel = statChanged.getLevel();
int skillIdx = skill.ordinal();
XpGlobe cachedGlobe = globeCache[skillIdx];

View File

@@ -51,12 +51,12 @@ import net.runelite.api.Player;
import net.runelite.api.Skill;
import net.runelite.api.VarPlayer;
import net.runelite.api.WorldType;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.api.events.MenuOptionClicked;
import net.runelite.api.events.NpcDespawned;
import net.runelite.api.events.StatChanged;
import net.runelite.api.widgets.WidgetID;
import static net.runelite.api.widgets.WidgetInfo.TO_GROUP;
import net.runelite.client.config.ConfigManager;
@@ -341,11 +341,11 @@ public class XpTrackerPlugin extends Plugin
}
@Subscribe
public void onExperienceChanged(ExperienceChanged event)
public void onStatChanged(StatChanged statChanged)
{
final Skill skill = event.getSkill();
final int currentXp = client.getSkillExperience(skill);
final int currentLevel = Experience.getLevelForXp(currentXp);
final Skill skill = statChanged.getSkill();
final int currentXp = statChanged.getXp();
final int currentLevel = statChanged.getLevel();
final VarPlayer startGoal = startGoalVarpForSkill(skill);
final VarPlayer endGoal = endGoalVarpForSkill(skill);
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.coords.LocalPoint;
import net.runelite.api.events.ChatMessage;
import net.runelite.api.events.ExperienceChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.StatChanged;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
import net.runelite.client.Notifier;
@@ -429,17 +429,24 @@ public class SlayerPluginTest
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);
StatChanged statChanged = new StatChanged(
Skill.SLAYER,
100,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("Dagannoth");
slayerPlugin.setAmount(143);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110);
slayerPlugin.onExperienceChanged(experienceChanged);
statChanged = new StatChanged(
Skill.SLAYER,
110,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(142, slayerPlugin.getAmount());
}
@@ -451,19 +458,26 @@ public class SlayerPluginTest
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);
StatChanged statChanged = new StatChanged(
Skill.SLAYER,
100,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("Monster");
slayerPlugin.setAmount(98);
assert Task.getTask("Monster") == null;
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110);
slayerPlugin.onExperienceChanged(experienceChanged);
statChanged = new StatChanged(
Skill.SLAYER,
110,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(97, slayerPlugin.getAmount());
}
@@ -475,24 +489,36 @@ public class SlayerPluginTest
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);
StatChanged statChanged = new StatChanged(
Skill.SLAYER,
100,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("TzTok-Jad");
slayerPlugin.setAmount(1);
// One bat kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(110);
slayerPlugin.onExperienceChanged(experienceChanged);
statChanged = new StatChanged(
Skill.SLAYER,
110,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(1, slayerPlugin.getAmount());
// One Jad kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(25_360);
slayerPlugin.onExperienceChanged(experienceChanged);
statChanged = new StatChanged(
Skill.SLAYER,
25360,
-1,
-1
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(0, slayerPlugin.getAmount());
}
@@ -504,24 +530,36 @@ public class SlayerPluginTest
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);
StatChanged statChanged = new StatChanged(
Skill.SLAYER,
110,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
slayerPlugin.setTaskName("TzKal-Zuk");
slayerPlugin.setAmount(1);
// One bat kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(125);
slayerPlugin.onExperienceChanged(experienceChanged);
statChanged = new StatChanged(
Skill.SLAYER,
125,
2,
2
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(1, slayerPlugin.getAmount());
// One Zuk kill
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(102_015);
slayerPlugin.onExperienceChanged(experienceChanged);
statChanged = new StatChanged(
Skill.SLAYER,
102_015,
-1,
-1
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(0, slayerPlugin.getAmount());
}
@@ -691,17 +729,24 @@ public class SlayerPluginTest
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);
StatChanged statChanged = new StatChanged(
Skill.SLAYER,
0,
1,
1
);
slayerPlugin.onStatChanged(statChanged);
when(client.getSkillExperience(Skill.SLAYER)).thenReturn(27);
slayerPlugin.onExperienceChanged(experienceChanged);
statChanged = new StatChanged(
Skill.SLAYER,
27,
1,
1
);
slayerPlugin.onStatChanged(statChanged);
assertEquals(34, slayerPlugin.getAmount());
}

View File

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