aboutsummaryrefslogtreecommitdiff
path: root/src/cleaners/skyblock
diff options
context:
space:
mode:
Diffstat (limited to 'src/cleaners/skyblock')
-rw-r--r--src/cleaners/skyblock/member.ts2
-rw-r--r--src/cleaners/skyblock/zones.ts22
2 files changed, 20 insertions, 4 deletions
diff --git a/src/cleaners/skyblock/member.ts b/src/cleaners/skyblock/member.ts
index a9a12b8..59dd493 100644
--- a/src/cleaners/skyblock/member.ts
+++ b/src/cleaners/skyblock/member.ts
@@ -81,7 +81,7 @@ export async function cleanSkyBlockProfileMemberResponse(member, included: Inclu
inventories: inventoriesIncluded ? await cleanInventories(member) : undefined,
objectives: cleanObjectives(member),
skills: await cleanSkills(member),
- visited_zones: cleanVisitedZones(member),
+ visited_zones: await cleanVisitedZones(member),
collections: cleanCollections(member),
slayers: cleanSlayers(member)
}
diff --git a/src/cleaners/skyblock/zones.ts b/src/cleaners/skyblock/zones.ts
index 87d008d..b07c542 100644
--- a/src/cleaners/skyblock/zones.ts
+++ b/src/cleaners/skyblock/zones.ts
@@ -1,18 +1,34 @@
+import * as constants from '../../constants.js'
+
export interface Zone {
name: string
visited: boolean
}
-export function cleanVisitedZones(data: any): Zone[] {
+export async function cleanVisitedZones(data: any): Promise<Zone[]> {
const rawZones = data?.visited_zones || []
// TODO: store all the zones that exist in SkyBlock, add add those to the array with visited being false
const zones: Zone[] = []
- for (const rawZoneName of rawZones) {
+
+ const knownZones = await constants.fetchZones()
+
+ for (const rawZoneName of knownZones) {
zones.push({
name: rawZoneName,
- visited: true
+ visited: rawZones.includes(rawZoneName)
})
}
+
+ // if this user somehow has a zone that we don't know about, just add it to zones
+ for (const rawZoneName of rawZones) {
+ if (!knownZones.includes(rawZoneName)) {
+ zones.push({
+ name: rawZoneName,
+ visited: true
+ })
+ }
+ }
+
return zones
}