aboutsummaryrefslogtreecommitdiff
path: root/src/cleaners
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-02-16 23:07:23 -0600
committermat <github@matdoes.dev>2022-02-16 23:07:23 -0600
commitff6dcfbe52cc325fce1acd3cb4f160d233967eec (patch)
tree02587128aa05ba4fd32652ff5de7a463864a0656 /src/cleaners
parent0c3a4d5e791be8fb9c34d55c13797c9f33871ca4 (diff)
downloadskyblock-api-ff6dcfbe52cc325fce1acd3cb4f160d233967eec.tar.gz
skyblock-api-ff6dcfbe52cc325fce1acd3cb4f160d233967eec.tar.bz2
skyblock-api-ff6dcfbe52cc325fce1acd3cb4f160d233967eec.zip
return max fairy souls and max minions in member
makes it so we don't have to fetch /constants from the frontend
Diffstat (limited to 'src/cleaners')
-rw-r--r--src/cleaners/skyblock/fairysouls.ts8
-rw-r--r--src/cleaners/skyblock/member.ts6
2 files changed, 12 insertions, 2 deletions
diff --git a/src/cleaners/skyblock/fairysouls.ts b/src/cleaners/skyblock/fairysouls.ts
index 11bbc9e..29c8502 100644
--- a/src/cleaners/skyblock/fairysouls.ts
+++ b/src/cleaners/skyblock/fairysouls.ts
@@ -1,14 +1,20 @@
+import * as constants from '../../constants'
+
export interface FairySouls {
total: number
/** The number of fairy souls that haven't been exchanged yet */
unexchanged: number
exchanges: number
+ /** The highest possible number of total fairy souls */
+ max: number
}
-export function cleanFairySouls(data: any): FairySouls {
+export async function cleanFairySouls(data: any): Promise<FairySouls> {
+ const { max_fairy_souls } = await constants.fetchConstantValues()
return {
total: data?.fairy_souls_collected ?? 0,
unexchanged: data?.fairy_souls ?? 0,
exchanges: data?.fairy_exchanges ?? 0,
+ max: max_fairy_souls ?? 0,
}
} \ No newline at end of file
diff --git a/src/cleaners/skyblock/member.ts b/src/cleaners/skyblock/member.ts
index 59dd493..932b016 100644
--- a/src/cleaners/skyblock/member.ts
+++ b/src/cleaners/skyblock/member.ts
@@ -29,6 +29,7 @@ export interface CleanMember extends CleanBasicMember {
stats: StatItem[]
rawHypixelStats?: { [ key: string ]: number }
minions: CleanMinion[]
+ max_minions: number
fairy_souls: FairySouls
inventories?: Inventories
objectives: Objective[]
@@ -57,10 +58,12 @@ export async function cleanSkyBlockProfileMemberResponse(member, included: Inclu
const player = await cached.fetchPlayer(member.uuid)
if (!player) return null
- const fairySouls = cleanFairySouls(member)
+ const fairySouls = await cleanFairySouls(member)
const { max_fairy_souls: maxFairySouls } = await constants.fetchConstantValues()
if (fairySouls.total > (maxFairySouls ?? 0))
await constants.setConstantValues({ max_fairy_souls: fairySouls.total })
+
+ const { max_minions } = await constants.fetchConstantValues()
return {
uuid: member.uuid,
@@ -77,6 +80,7 @@ export async function cleanSkyBlockProfileMemberResponse(member, included: Inclu
rawHypixelStats: member.stats ?? {},
minions: await cleanMinions(member),
+ max_minions: max_minions ?? 0,
fairy_souls: fairySouls,
inventories: inventoriesIncluded ? await cleanInventories(member) : undefined,
objectives: cleanObjectives(member),