diff options
author | mat <27899617+mat-1@users.noreply.github.com> | 2021-02-13 15:56:53 -0600 |
---|---|---|
committer | mat <27899617+mat-1@users.noreply.github.com> | 2021-02-13 15:56:53 -0600 |
commit | 07496ac87ce982200474cc0af4afdf9665e6480c (patch) | |
tree | 872ef9a284e65ec35d83d283e8f705d69238d895 /src/cleaners/skyblock | |
parent | bf46c373c12f5058eac7c9aab3467de2637a7efb (diff) | |
download | skyblock-api-07496ac87ce982200474cc0af4afdf9665e6480c.tar.gz skyblock-api-07496ac87ce982200474cc0af4afdf9665e6480c.tar.bz2 skyblock-api-07496ac87ce982200474cc0af4afdf9665e6480c.zip |
add banking info
Diffstat (limited to 'src/cleaners/skyblock')
-rw-r--r-- | src/cleaners/skyblock/bank.ts | 14 | ||||
-rw-r--r-- | src/cleaners/skyblock/member.ts | 11 | ||||
-rw-r--r-- | src/cleaners/skyblock/profile.ts | 44 | ||||
-rw-r--r-- | src/cleaners/skyblock/profiles.ts | 1 |
4 files changed, 55 insertions, 15 deletions
diff --git a/src/cleaners/skyblock/bank.ts b/src/cleaners/skyblock/bank.ts new file mode 100644 index 0000000..7db7a37 --- /dev/null +++ b/src/cleaners/skyblock/bank.ts @@ -0,0 +1,14 @@ +import { cleanSkyblockProfileResponseLighter } from "./profile" + +export interface Bank { + balance: number + history: any[] +} + +export function cleanBank(data: any): Bank { + return { + balance: data?.banking?.balance ?? 0, + // TODO: make transactions good + history: data?.banking?.transactions ?? [] + } +}
\ No newline at end of file diff --git a/src/cleaners/skyblock/member.ts b/src/cleaners/skyblock/member.ts index 774dace..43bd9fd 100644 --- a/src/cleaners/skyblock/member.ts +++ b/src/cleaners/skyblock/member.ts @@ -1,6 +1,7 @@ import { Included } from '../../hypixel' import * as cached from '../../hypixelCached' import { CleanPlayer } from '../player' +import { Bank, cleanBank } from './bank' import { CleanMinion, cleanMinions } from './minions' import { CleanProfileStats, cleanProfileStats } from './stats' @@ -14,6 +15,7 @@ export interface CleanBasicMember { export interface CleanMember extends CleanBasicMember { stats?: CleanProfileStats minions?: CleanMinion[] + bank?: Bank } @@ -27,8 +29,8 @@ export async function cleanSkyBlockProfileMemberResponse(member, included: Inclu last_save: member.last_save, first_join: member.first_join, // last_death: ??? idk how this is formatted, - stats: statsIncluded ? cleanProfileStats(member.stats) : undefined, - minions: statsIncluded ? cleanMinions(member.crafted_generators) : undefined, + stats: statsIncluded ? cleanProfileStats(member?.stats) : undefined, + minions: statsIncluded ? cleanMinions(member?.crafted_generators) : undefined, } } @@ -38,10 +40,7 @@ export interface CleanMemberProfilePlayer extends CleanPlayer { profileName: string first_join: number last_save: number - bank?: { - balance: number - history: any[] - } + bank?: Bank } export interface CleanMemberProfile { diff --git a/src/cleaners/skyblock/profile.ts b/src/cleaners/skyblock/profile.ts index 8b59a9d..c61e6cf 100644 --- a/src/cleaners/skyblock/profile.ts +++ b/src/cleaners/skyblock/profile.ts @@ -1,6 +1,7 @@ -import { CleanBasicMember, CleanMember, cleanSkyBlockProfileMemberResponse } from './member' +import { CleanBasicMember, CleanMember, CleanMemberProfile, cleanSkyBlockProfileMemberResponse } from './member' import { CleanMinion, combineMinionArrays } from './minions' - +import * as cached from '../../hypixelCached' +import { cleanBank } from './bank' export interface CleanProfile extends CleanBasicProfile { members?: CleanBasicMember[] @@ -59,12 +60,7 @@ export async function cleanSkyblockProfileResponse(data: any): Promise<CleanFull uuid: data.profile_id, name: data.cute_name, members: cleanedMembers, - bank: { - balance: data?.banking?.balance ?? 0, - - // TODO: make transactions good - history: data?.banking?.transactions ?? [] - }, + bank: cleanBank(data), minions } } @@ -77,3 +73,35 @@ export interface CleanBasicProfile { name?: string } +// TODO: this should be moved and split up +/** + * Fetch a CleanMemberProfile from a user and string + * This is safe to use many times as the results are cached! + * @param user A username or uuid + * @param profile A profile name or profile uuid + */ +export async function fetchMemberProfile(user: string, profile: string): Promise<CleanMemberProfile> { + const playerUuid = await cached.uuidFromUser(user) + const profileUuid = await cached.fetchProfileUuid(user, profile) + + const player = await cached.fetchPlayer(playerUuid) + + const cleanProfile = await cached.fetchProfile(playerUuid, profileUuid) + + const member = cleanProfile.members.find(m => m.uuid === playerUuid) + + return { + member: { + profileName: cleanProfile.name, + first_join: member.first_join, + last_save: member.last_save, + // add all other data relating to the hypixel player, such as username, rank, etc + ...player + }, + profile: { + uuid: cleanProfile.uuid, + bank: cleanProfile.bank, + minions: cleanProfile.minions, + } + } +} diff --git a/src/cleaners/skyblock/profiles.ts b/src/cleaners/skyblock/profiles.ts index c942a14..5eea8fb 100644 --- a/src/cleaners/skyblock/profiles.ts +++ b/src/cleaners/skyblock/profiles.ts @@ -9,7 +9,6 @@ export function cleanPlayerSkyblockProfiles(rawProfiles: HypixelPlayerStatsSkyBl name: profile.cute_name }) } - console.log('cleanPlayerSkyblockProfiles', profiles) return profiles } |