diff options
author | mat <github@matdoes.dev> | 2022-03-30 19:18:58 +0000 |
---|---|---|
committer | mat <github@matdoes.dev> | 2022-03-30 19:18:58 +0000 |
commit | 58f6975e9a51d41a028f73570a50763563369857 (patch) | |
tree | 33f9d480a435d12596e36a33ac589cd635680705 /src | |
parent | c265f90879e9781dbdec08d7b297e0e2ce9bd76c (diff) | |
download | skyblock-stats-58f6975e9a51d41a028f73570a50763563369857.tar.gz skyblock-stats-58f6975e9a51d41a028f73570a50763563369857.tar.bz2 skyblock-stats-58f6975e9a51d41a028f73570a50763563369857.zip |
farming contest info
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/APITypes.d.ts | 59 | ||||
-rw-r--r-- | src/lib/ListItemWithIcon.svelte | 4 | ||||
-rw-r--r-- | src/lib/Toc.svelte | 4 | ||||
-rw-r--r-- | src/lib/sections/Collections.svelte | 2 | ||||
-rw-r--r-- | src/routes/leaderboards/index.svelte | 2 | ||||
-rw-r--r-- | src/routes/player/[player]/[profile].svelte | 10 |
6 files changed, 58 insertions, 23 deletions
diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts index 926072c..983fb61 100644 --- a/src/lib/APITypes.d.ts +++ b/src/lib/APITypes.d.ts @@ -8,23 +8,26 @@ export interface CleanMemberProfile { } export interface CleanMemberProfilePlayer extends CleanPlayer { - // The profile name may be different for each player, so we put it here - profileName: string - firstJoin: number - lastSave: number - purse: number - stats: StatItem[] - rawHypixelStats: { [key: string]: number } - minions: CleanMinion[] - fairySouls: FairySouls - inventories?: Inventories - objectives: Objective[] - skills: Skill[] - zones: Zone[] - collections: Collection[] - slayers: SlayerData - pets: PetsData - harp: HarpData + profileName: string; + firstJoin: number | null; + lastSave: number | null; + purse: number; + stats: StatItem[]; + rawHypixelStats: { + [key: string]: number; + }; + minions: CleanMinion[]; + fairySouls: FairySouls; + inventories?: Inventories; + objectives: Objective[]; + skills: Skill[]; + zones: Zone[]; + collections: Collection[]; + slayers: SlayerData; + pets: PetsData; + harp: HarpData; + coopInvitation: CoopInvitation | null; + farmingContests: FarmingContests; } export interface CleanMember extends CleanBasicMember { @@ -315,3 +318,25 @@ export interface ItemListData { lastUpdated: number list: ItemListItem[] } + +export interface PlayerFarmingContestStats { + year: number; + month: number; + day: number; + crops: { + item: string; + amount: number; + /** The position (1-indexed) that the user got on the contest. */ + position: number | null; + /** Whether the player has claimed their rewards. */ + claimed: boolean | null; + /** + * The number of people who participated in this contest. + */ + participants: number | null; + }[]; +} +export interface FarmingContests { + talkedToJacob: boolean; + list: PlayerFarmingContestStats[]; +} diff --git a/src/lib/ListItemWithIcon.svelte b/src/lib/ListItemWithIcon.svelte index 7666c18..81e9bb5 100644 --- a/src/lib/ListItemWithIcon.svelte +++ b/src/lib/ListItemWithIcon.svelte @@ -1,10 +1,10 @@ <script lang="ts"> - export let url: string + export let src: string export let alt: string | undefined = undefined </script> <li class="list-item-with-icon"> - <img class="list-item-icon" src={url} {alt} loading="lazy" /> + <img class="list-item-icon" {src} {alt} loading="lazy" /> <slot /> </li> diff --git a/src/lib/Toc.svelte b/src/lib/Toc.svelte index cced057..882ebdd 100644 --- a/src/lib/Toc.svelte +++ b/src/lib/Toc.svelte @@ -1,5 +1,5 @@ <script lang="ts"> - import { cleanId } from './utils' + import { cleanId, toTitleCase } from './utils' export let categories: string[] </script> @@ -8,7 +8,7 @@ <h3>Contents</h3> <ul> {#each categories as category} - <li><a href="#{category}">{cleanId(category)}</a></li> + <li><a href="#{category.replace(/[ _]/, '-')}">{toTitleCase(cleanId(category))}</a></li> {/each} </ul> </div> diff --git a/src/lib/sections/Collections.svelte b/src/lib/sections/Collections.svelte index 8551bf4..4baa660 100644 --- a/src/lib/sections/Collections.svelte +++ b/src/lib/sections/Collections.svelte @@ -24,7 +24,7 @@ <ul> {#each collections as collection} <ListItemWithIcon - url={skyblockItemToUrl(collection.name, pack)} + src={skyblockItemToUrl(collection.name, pack)} alt={cleanId(collection.name)} > <Tooltip> diff --git a/src/routes/leaderboards/index.svelte b/src/routes/leaderboards/index.svelte index 37fcb94..02360fb 100644 --- a/src/routes/leaderboards/index.svelte +++ b/src/routes/leaderboards/index.svelte @@ -41,7 +41,7 @@ ? skyblockItemToUrl(leaderboard.slice(11)) : null} {#if imageUrl} - <ListItemWithIcon url={imageUrl}> + <ListItemWithIcon src={imageUrl}> <a href="/leaderboards/{leaderboard}">{cleanId(leaderboard)}</a> </ListItemWithIcon> {:else} diff --git a/src/routes/player/[player]/[profile].svelte b/src/routes/player/[player]/[profile].svelte index 6a720ce..c55732c 100644 --- a/src/routes/player/[player]/[profile].svelte +++ b/src/routes/player/[player]/[profile].svelte @@ -51,6 +51,7 @@ import Harp from '$lib/sections/Harp.svelte' import Claimed from '$lib/sections/Claimed.svelte' import Pets from '$lib/sections/Pets.svelte' + import FarmingContests from '$lib/sections/FarmingContests.svelte' export let data: CleanMemberProfile export let pack: MatcherFile @@ -73,6 +74,7 @@ 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') + if (data.member.farmingContests.list.length > 0) categories.push('farming_contests') categories.push('leaderboards') } @@ -228,6 +230,14 @@ </Collapsible> </section> {/if} + {#if categories.includes('farming_contests')} + <section> + <Collapsible id="farming-contests"> + <h2 slot="title">Farming Contests</h2> + <FarmingContests {data} /> + </Collapsible> + </section> + {/if} <section> <Collapsible id="leaderboards"> <h2 slot="title">Leaderboards</h2> |