From c265f90879e9781dbdec08d7b297e0e2ce9bd76c Mon Sep 17 00:00:00 2001 From: mat Date: Mon, 28 Mar 2022 17:57:41 +0000 Subject: add pets category --- src/lib/APITypes.d.ts | 39 ++++++++++++++ src/lib/sections/Pets.svelte | 79 +++++++++++++++++++++++++++++ src/routes/player/[player]/[profile].svelte | 10 ++++ 3 files changed, 128 insertions(+) create mode 100644 src/lib/sections/Pets.svelte (limited to 'src') diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts index a78da0d..926072c 100644 --- a/src/lib/APITypes.d.ts +++ b/src/lib/APITypes.d.ts @@ -1,3 +1,6 @@ +import type typedHypixelApi from 'typed-hypixel-api' + + export interface CleanMemberProfile { member: CleanMemberProfilePlayer profile: CleanFullProfileBasicMembers @@ -276,3 +279,39 @@ export interface ClaimedSkyBlockItem { name: string timestamp: number } + +export interface Pet { + id: string + xp: number + level: number + tier: typedHypixelApi.Pet['tier'] + skin: string | null + item: ItemListItem | null +} +export interface PetsData { + active: Pet | null + list: Pet[] + missingIds: string[] +} + +export interface ItemRequirement { + dungeon: { + type: string + level: number + } +} +export interface ItemListItem { + id: string + vanillaId: string + tier: string | null + display: { + name: string + glint: boolean + } + npcSellPrice: number | null + requirements: ItemRequirement | null +} +export interface ItemListData { + lastUpdated: number + list: ItemListItem[] +} diff --git a/src/lib/sections/Pets.svelte b/src/lib/sections/Pets.svelte new file mode 100644 index 0000000..7f660c4 --- /dev/null +++ b/src/lib/sections/Pets.svelte @@ -0,0 +1,79 @@ + + +{#if data.member.zones} +

+ Pets acquired: + + {petsAcquiredCount}/{totalPetsCount} + +

+
+ {#each data.member.pets.list as pet} +
+

{cleanId(pet.id.toLowerCase())}

+

Level: {pet.level.toLocaleString()}

+

Tier: {toTitleCase(pet.tier)}

+ {#if pet.item} +

Item: {pet.item.display.name}

+ {/if} +
+ {/each} +
+ {#if data.member.pets.missingIds.length > 0} +

Missing

+ + {/if} +{/if} + + diff --git a/src/routes/player/[player]/[profile].svelte b/src/routes/player/[player]/[profile].svelte index 848bfb4..6a720ce 100644 --- a/src/routes/player/[player]/[profile].svelte +++ b/src/routes/player/[player]/[profile].svelte @@ -50,6 +50,7 @@ import Toc from '$lib/Toc.svelte' import Harp from '$lib/sections/Harp.svelte' import Claimed from '$lib/sections/Claimed.svelte' + import Pets from '$lib/sections/Pets.svelte' export let data: CleanMemberProfile export let pack: MatcherFile @@ -71,6 +72,7 @@ if (data.profile.bank.balance !== undefined) categories.push('bank') if (data.member.harp.selected !== null) categories.push('harp') if (data.member.claimed && data.member.claimed.length > 0) categories.push('claimed') + if (data.member.pets.list.length > 0) categories.push('pets') categories.push('leaderboards') } @@ -218,6 +220,14 @@ {/if} + {#if categories.includes('pets')} +
+ +

Pets

+ +
+
+ {/if}

Leaderboards

-- cgit