Skip to main content

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) level
  • getBoostedLevel(Skill) - current boosted level
  • getExperience(Skill)long
  • getVirtualLevel(Skill) - level 1–126 via Experience.getLevelForXp
  • getExperienceToNextLevel(Skill) - XP until next virtual level; 0 at cap
  • getTotalLevel() - sum of real levels across all skills (excludes OVERALL)
  • getReducedSkills()List<Skill> - skills where boosted < real
  • isBoosted(Skill) - boosted > real
  • isDrained(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:

  • getVirtualLevel clamps XP to Integer.MAX_VALUE before calling Experience.getLevelForXp.
  • getTotalLevel and getReducedSkills skip Skill.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.