aboutsummaryrefslogtreecommitdiff
path: root/build/cleaners/skyblock/member.js
blob: 3a6a143f6c0e55363ab469362925ba76a4d3f5ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { cleanCollections } from './collections.js';
import { cleanInventories } from './inventory.js';
import { cleanFairySouls } from './fairysouls.js';
import { cleanObjectives } from './objectives.js';
import { cleanProfileStats } from './stats.js';
import { cleanMinions } from './minions.js';
import { cleanSlayers } from './slayers.js';
import { cleanVisitedZones } from './zones.js';
import { cleanSkills } from './skills.js';
import * as cached from '../../hypixelCached.js';
import * as constants from '../../constants.js';
export async function cleanSkyBlockProfileMemberResponseBasic(member) {
    const player = await cached.fetchPlayer(member.uuid);
    if (!player)
        return null;
    return {
        uuid: member.uuid,
        username: player.username,
        last_save: member.last_save / 1000,
        first_join: member.first_join / 1000,
        rank: player.rank
    };
}
/** Cleans up a member (from skyblock/profile) */
export async function cleanSkyBlockProfileMemberResponse(member, included = undefined) {
    // profiles.members[]
    const inventoriesIncluded = included === undefined || included.includes('inventories');
    const player = await cached.fetchPlayer(member.uuid);
    if (!player)
        return null;
    const fairySouls = cleanFairySouls(member);
    const { max_fairy_souls: maxFairySouls } = await constants.fetchConstantValues();
    if (fairySouls.total > (maxFairySouls ?? 0))
        await constants.setConstantValues({ max_fairy_souls: fairySouls.total });
    return {
        uuid: member.uuid,
        username: player.username,
        last_save: member.last_save / 1000,
        first_join: member.first_join / 1000,
        rank: player.rank,
        purse: member.coin_purse,
        stats: cleanProfileStats(member),
        // this is used for leaderboards
        rawHypixelStats: member.stats ?? {},
        minions: await cleanMinions(member),
        fairy_souls: fairySouls,
        inventories: inventoriesIncluded ? await cleanInventories(member) : undefined,
        objectives: cleanObjectives(member),
        skills: await cleanSkills(member),
        visited_zones: await cleanVisitedZones(member),
        collections: cleanCollections(member),
        slayers: cleanSlayers(member)
    };
}