getBestSkyblockProfile = (uuid) => {
return fetch(endpoint + `/skyblock/profiles?uuid=${uuid}&key=${API_KEY}`)
.then(r => r.json())
.then(r => r.profiles)
.then(r => r.map(
d => {
let xp = 0;
const member = d.members[uuid];
if (member && member.slayer_bosses) {
for (const [key, value] of Object.entries(member.slayer_bosses)) {
xp += (value.xp ? value.xp : 0);
}
}
const combatXp = (
(member.experience_skill_combat || 0) +
(member.experience_skill_mining || 0) +
(member.experience_skill_alchemy || 0) +
(member.experience_skill_farming || 0) +
(member.experience_skill_taming || 0) +
(member.experience_skill_enchanting || 0) +
(member.experience_skill_fishing || 0) +
(member.experience_skill_foraging || 0))/8;
const exactSkillLevel = lookupLevel(combatXp);
const averageSkillLevel = (
lookupLevel(member.experience_skill_combat || 0) +
lookupLevel(member.experience_skill_mining || 0) +
lookupLevel(member.experience_skill_alchemy || 0) +
lookupLevel(member.experience_skill_farming || 0) +
lookupLevel(member.experience_skill_taming || 0) +
lookupLevel(member.experience_skill_enchanting || 0) +
lookupLevel(member.experience_skill_fishing || 0) +
lookupLevel(member.experience_skill_foraging || 0))/8;
return {slayerXp: xp, combatXp: combatXp, exactSkillLevel: exactSkillLevel, averageSkillLevel: averageSkillLevel, ...member}
}
).sort((a,b) => b.slayerXp - a.slayerXp)[0]
)
.catch(e => e)
}