UNPKG

@zikeji/hypixel

Version:

With IntelliSense support & test coverage, this is an unopinionated async/await API wrapper for Hypixel's Public API. It is developed in TypeScript complete with documentation, typed interfaces for all API responses, built-in rate-limit handling, flexible

48 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSkyBlockProfileMemberSkills = getSkyBlockProfileMemberSkills; /** * This helper takes a profile member and converts raw skill EXP to skill levels using the skills resources. Returns false is none of the profile member does not have their skills API enabled. * @param profileMember The SkyBlock profile member object you want to check. * @param skills The skills resource object. * @category Helper */ function getSkyBlockProfileMemberSkills(profileMember, skills) { var _a; if (!((_a = profileMember.player_data) === null || _a === void 0 ? void 0 : _a.experience)) { return false; } const result = {}; for (let i = 0; i < Object.keys(skills).length; i += 1) { const skillName = Object.keys(skills)[i]; const skillKey = `SKILL_${skillName}`; const skill = skills[skillName]; let exp = 0; if (skillKey in profileMember.player_data.experience) { exp = profileMember.player_data.experience[skillKey]; } let level = 0; let totalExpToLevel = 0; let expToNextLevel = 0; for (let ii = 0; ii < skill.levels.length; ii += 1) { const levelInfo = skill.levels[ii]; if (levelInfo.totalExpRequired > exp) { expToNextLevel = levelInfo.totalExpRequired - exp; break; } level = levelInfo.level; totalExpToLevel = levelInfo.totalExpRequired; } result[skillName] = { name: skill.name, description: skill.description, level, exp, totalExpToLevel, expToNextLevel, maxLevel: skill.maxLevel, }; } return result; } //# sourceMappingURL=SkyBlockSkills.js.map