Skills Actions
SkillsActions reads skill levels, experience, and boost state. All methods return safe defaults (0 / false / empty) when the client is not ready; null skill arguments short-circuit before touching the client.
Core methods:
getLevel(Skill)- real (unbooted) levelgetBoostedLevel(Skill)- current boosted levelgetExperience(Skill)→longgetVirtualLevel(Skill)- level 1–126 viaExperience.getLevelForXpgetExperienceToNextLevel(Skill)- XP until next virtual level; 0 at capgetTotalLevel()- sum of real levels across all skills (excludesOVERALL)getReducedSkills()→List<Skill>- skills where boosted < realisBoosted(Skill)- boosted > realisDrained(Skill)- boosted < real
Example:
if (SkillsActions.isBoosted(Skill.STRENGTH)) {
log.debug("Strength boost active: {}", SkillsActions.getBoostedLevel(Skill.STRENGTH));
}
List<Skill> drained = SkillsActions.getReducedSkills();
if (!drained.isEmpty()) {
log.debug("Drained skills: {}", drained);
}
Behavior notes:
getVirtualLevelclamps XP toInteger.MAX_VALUEbefore callingExperience.getLevelForXp.getTotalLevelandgetReducedSkillsskipSkill.OVERALL(the aggregate skill used for hiscores display).- All methods return safe defaults (0, false, empty list) and do not throw when the client or player is unavailable.