SkillsAPI interface is located at com.hacklab.minecraft.skills.api.SkillsAPI. Obtain an instance via the Bukkit ServicesManager as described in Getting started.
Skill operations
getSkill (by Player)
Player
required
The online player to query.
String
required
Skill name in any accepted format (display name, enum name, case-insensitive, spaces or underscores).
Double?
Skill value in the range
0.0–100.0, or null if skillName does not match any known skill.getSkill (by UUID)
UUID
required
The UUID of the player.
String
required
Skill name in any accepted format.
Double?
Skill value
0.0–100.0, or null if the skill name is invalid or the player’s data is not loaded.setSkill
0.0–100.0 before being applied.
Player
required
The online player to modify.
String
required
Skill name in any accepted format.
Double
required
Target skill value. Automatically clamped to
[0.0, 100.0].Boolean
true if the skill was updated, false if skillName is invalid.addSkill
amount is negative) a delta to the current skill value. Respects the 0.0–100.0 cap.
Player
required
The online player to modify.
String
required
Skill name in any accepted format.
Double
required
Amount to add. May be negative to reduce the skill.
Double?
The new skill value after the delta is applied, or
null if skillName is invalid.hasSkillLevel
Player
required
The online player to check.
String
required
Skill name in any accepted format.
Double
required
The minimum required skill value.
Boolean
true if the player’s skill value is greater than or equal to minLevel. Returns false if the skill name is invalid.getAllSkills
Player
required
The online player to query.
Map<String, Double>
Map keyed by skill display name (e.g.
"Swordsmanship") with the current value as the entry. All 37 skills are always present; unlearned skills have a value of 0.0.getTotalSkillPoints
Player
required
The online player to query.
Double
Sum of all 37 skill values. Maximum is
700.0 (7 skills at 100.0).Stat operations
STR, DEX, and INT are derived stats calculated automatically from the player’s skill values. They cannot be set directly; they update whenever the underlying skills change.getStat
Player
required
The online player to query.
String
required
One of
"STR", "DEX", or "INT" (also accepts the long forms "STRENGTH", "DEXTERITY", "INTELLIGENCE").Int?
Stat value
0–100, or null if statName is not recognised.getAllStats
Player
required
The online player to query.
Map<String, Int>
Map with keys
"STR", "DEX", and "INT" mapped to their current integer values.HP, mana, and stamina
Skills maintains internal HP, mana, and stamina values that are separate from vanilla Minecraft hunger and hearts. HP is synchronised to vanilla hearts as a percentage.getCurrentHp
Player
required
The online player to query.
Double
Current internal HP. Minimum
0.0; maximum equals getMaxHp().getMaxHp
100 + STR, giving a range of 100–200.
Player
required
The online player to query.
Double
Maximum HP in the range
100.0–200.0 based on the player’s STR stat.getCurrentMana
Player
required
The online player to query.
Double
Current mana. Minimum
0.0; maximum 20.0.getMaxMana
20.0. INT reduces the cost of spells rather than increasing the pool.
Player
required
The online player to query.
Double
Maximum mana. Always
20.0.getCurrentStamina
Player
required
The online player to query.
Double
Current stamina. Minimum
0.0; maximum equals getMaxStamina().getMaxStamina
100 + DEX + (Focus / 2), giving a maximum of 250.0 when DEX and Focus are both 100.
Player
required
The online player to query.
Double
Maximum stamina. Range
100.0–250.0 depending on DEX stat and Focus skill.restoreMana
Player
required
The online player to restore mana for.
Double
required
Amount of mana to restore. Excess is discarded.
restoreStamina
Player
required
The online player to restore stamina for.
Double
required
Amount of stamina to restore. Excess is discarded.
Utility
getAvailableSkillNames
List<String>
Ordered list of skill display names (e.g.
["Swordsmanship", "Axe", ...]). Use these as inputs to other skill methods.isValidSkillName
String
required
The string to validate.
Boolean
true if the name resolves to a known skill, false otherwise.getTitle
"Grandmaster Swordsman").
Player
required
The online player to query.
String
Human-readable title string. The format depends on the player’s skill distribution.