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

export interface Zone {
	name: string
	visited: boolean
}


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[] = []

	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
}