diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/APITypes.d.ts | 33 | ||||
-rw-r--r-- | src/lib/minecraft/Username.svelte | 4 | ||||
-rw-r--r-- | src/routes/leaderboards/[name].svelte | 5 |
3 files changed, 38 insertions, 4 deletions
diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts index 65e70f3..2a33973 100644 --- a/src/lib/APITypes.d.ts +++ b/src/lib/APITypes.d.ts @@ -349,3 +349,36 @@ export interface CoopInvitation { } export type GameMode = 'normal' | 'stranded' | 'bingo' | 'ironman' + +export interface MemberLeaderboard { + name: string + unit: string | null + list: MemberLeaderboardItem[] + info?: string +} + +export interface ProfileLeaderboard { + name: string + unit: string | null + list: ProfileLeaderboardItem[] + info?: string +} + +export interface MemberLeaderboardItem { + player: LeaderboardBasicPlayer + profileUuid: string + value: number +} +export interface ProfileLeaderboardItem { + players: LeaderboardBasicPlayer[] + profileUuid: string + value: number +} + +export interface LeaderboardBasicPlayer { + uuid: string + username: string + rank: { + color: string + } +} diff --git a/src/lib/minecraft/Username.svelte b/src/lib/minecraft/Username.svelte index 34e2155..f6f9911 100644 --- a/src/lib/minecraft/Username.svelte +++ b/src/lib/minecraft/Username.svelte @@ -1,12 +1,12 @@ <script lang="ts"> - import type { CleanPlayer, CleanBasicMember } from '$lib/APITypes' + import type { CleanPlayer, CleanBasicMember, LeaderboardBasicPlayer } from '$lib/APITypes' import ConditionalLink from '$lib/ConditionalLink.svelte' import Head2d from '$lib/minecraft/heads/Head2d.svelte' import Head3d from '$lib/minecraft/heads/Head3d.svelte' import { formattingCodeToHtml } from '../utils' - export let player: CleanPlayer | CleanBasicMember + export let player: CleanPlayer | CleanBasicMember | LeaderboardBasicPlayer export let headType: null | '3d' | '2d' = null export let hyperlinkToProfile: boolean | string = false export let prefix = false diff --git a/src/routes/leaderboards/[name].svelte b/src/routes/leaderboards/[name].svelte index 930b1cb..ea1f658 100644 --- a/src/routes/leaderboards/[name].svelte +++ b/src/routes/leaderboards/[name].svelte @@ -23,8 +23,9 @@ import { skyblockItemToUrl } from '$lib/minecraft/inventory' import { cleanId, formatNumberFromUnit, toTitleCase } from '$lib/utils' import Username from '$lib/minecraft/Username.svelte' + import type { MemberLeaderboard, ProfileLeaderboard } from '$lib/APITypes' - export let data + export let data: MemberLeaderboard | ProfileLeaderboard $: imageUrl = data.name.startsWith('collection_') ? skyblockItemToUrl(data.name.slice(11)) : null </script> @@ -59,7 +60,7 @@ data.unit ?? cleanId(data.name).toLowerCase() )} </span> - {#if leaderboardItem.player} + {#if 'player' in leaderboardItem} <Username player={leaderboardItem.player} headType="2d" |