diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 0a93258803..8fd6dbbd66 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -1087,16 +1087,21 @@ public abstract class RSClientMixin implements RSClient @Inject public static void boostedSkillLevelsChanged(int idx) { - Skill[] skills = Skill.values(); - - if (idx >= 0 && idx < skills.length - 1) + if (idx == 0) + { + return; + } + + int changedSkillIdx = idx - 1 & 31; + int skillIdx = client.getChangedSkillLevels()[changedSkillIdx]; + Skill[] skills = Skill.values(); + if (skillIdx >= 0 && skillIdx < skills.length - 1) { - Skill updatedSkill = skills[idx]; StatChanged statChanged = new StatChanged( - updatedSkill, - client.getSkillExperience(updatedSkill), - client.getRealSkillLevel(updatedSkill), - client.getBoostedSkillLevel(updatedSkill) + skills[skillIdx], + client.getSkillExperiences()[skillIdx], + client.getRealSkillLevels()[skillIdx], + client.getBoostedSkillLevels()[skillIdx] ); client.getCallbacks().post(StatChanged.class, statChanged); } diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java index 8727dfface..b866f3c90a 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java @@ -1164,4 +1164,7 @@ public interface RSClient extends RSGameShell, Client @Import("draggedWidgetY") int getDraggedWidgetY(); + + @Import("changedSkills") + int[] getChangedSkillLevels(); }