aboutsummaryrefslogtreecommitdiff
path: root/src/cleaners/skyblock/zones.ts
blob: 556a2e777e810fc9ecdeaa0a799bb0c80382f016 (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
import typedHypixelApi from 'typed-hypixel-api'
import * as constants from '../../constants.js'

export interface Zone {
	name: string
	visited: boolean
}


export async function cleanVisitedZones(data: typedHypixelApi.SkyBlockProfileMember): 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[] = []

	const knownZones = await constants.fetchZones()

	for (const rawZoneName of knownZones) {
		zones.push({
			name: rawZoneName,
			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
}