aboutsummaryrefslogtreecommitdiff
path: root/src/routes
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-03-04 23:05:09 -0600
committermat <github@matdoes.dev>2022-03-04 23:05:09 -0600
commite2506cac822f0b5ddbc285880c768eda9357e075 (patch)
tree0ca4f9dee04a0d51f6d3a939c9543fbf9e6d779c /src/routes
parent453872fa0587040cf56f5ba72d92042542836afc (diff)
downloadskyblock-stats-e2506cac822f0b5ddbc285880c768eda9357e075.tar.gz
skyblock-stats-e2506cac822f0b5ddbc285880c768eda9357e075.tar.bz2
skyblock-stats-e2506cac822f0b5ddbc285880c768eda9357e075.zip
dynamic packs and bug fixes
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/player/[player]/[profile].svelte57
-rw-r--r--src/routes/player/[player]/index.svelte19
2 files changed, 44 insertions, 32 deletions
diff --git a/src/routes/player/[player]/[profile].svelte b/src/routes/player/[player]/[profile].svelte
index e8b601d..6cb5753 100644
--- a/src/routes/player/[player]/[profile].svelte
+++ b/src/routes/player/[player]/[profile].svelte
@@ -9,7 +9,40 @@
r.json()
)
- const pack = params.pack ?? data?.customization?.pack
+ const packName = params.pack ?? data?.customization?.pack
+
+ let pack: MatcherFile | undefined
+
+ switch (packName) {
+ case 'ectoplasm':
+ pack = (await import('skyblock-assets/matchers/ectoplasm.json')) as any
+ break
+ case 'furfsky':
+ pack = (await import('skyblock-assets/matchers/furfsky.json')) as any
+ break
+ case 'furfsky_reborn':
+ pack = (await import('skyblock-assets/matchers/furfsky_reborn.json')) as any
+ break
+ case 'hypixel+':
+ pack = (await import('skyblock-assets/matchers/hypixel+.json')) as any
+ break
+ case 'packshq':
+ pack = (await import('skyblock-assets/matchers/packshq.json')) as any
+ break
+ case 'rnbw':
+ pack = (await import('skyblock-assets/matchers/rnbw.json')) as any
+ break
+ case 'vanilla':
+ pack = (await import('skyblock-assets/matchers/vanilla.json')) as any
+ break
+ case 'worlds_and_beyond':
+ pack = (await import('skyblock-assets/matchers/worlds_and_beyond.json')) as any
+ break
+ default:
+ // packshq is the default pack
+ pack = (await import('skyblock-assets/matchers/furfsky_reborn.json')) as any
+ break
+ }
return {
props: {
@@ -24,9 +57,11 @@
import Leaderboards from '$lib/sections/Leaderboards.svelte'
import Inventories from '$lib/sections/Inventories.svelte'
import Collections from '$lib/sections/Collections.svelte'
+ import BackgroundImage from '$lib/BackgroundImage.svelte'
import Username from '$lib/minecraft/Username.svelte'
import StatList from '$lib/sections/StatList.svelte'
import Infobox from '$lib/sections/Infobox.svelte'
+ import type { MatcherFile } from 'skyblock-assets'
import Minions from '$lib/sections/Minions.svelte'
import Collapsible from '$lib/Collapsible.svelte'
import Skills from '$lib/sections/Skills.svelte'
@@ -40,10 +75,9 @@
import Toc from '$lib/Toc.svelte'
import type { CleanMemberProfile } from '$lib/APITypes'
- import { onDestroy } from 'svelte'
export let data: CleanMemberProfile
- export let pack: string
+ export let pack: MatcherFile
const categories = [
'deaths',
@@ -57,22 +91,11 @@
'collections',
'leaderboards',
]
-
- // cursed svelte :D
- $: bodyStyle = data.customization?.backgroundUrl
- ? `<style>:root{--background:url(${data.customization.backgroundUrl})}</style>`
- : ''
-
- // get rid of the body style when we leave the page
- // not doing this will sometimes cause the background to stay
- onDestroy(() => {
- bodyStyle = ''
- })
</script>
-<svelte:head>
- {@html bodyStyle}
-</svelte:head>
+{#if data.customization?.backgroundUrl}
+ <BackgroundImage url={data.customization.backgroundUrl} />
+{/if}
<Head
title="{data.member.username}'s SkyBlock profile ({data.member.profileName})"
diff --git a/src/routes/player/[player]/index.svelte b/src/routes/player/[player]/index.svelte
index b20802f..97b7d78 100644
--- a/src/routes/player/[player]/index.svelte
+++ b/src/routes/player/[player]/index.svelte
@@ -28,10 +28,10 @@
<script lang="ts">
import type { CleanProfile, CleanUser } from '$lib/APITypes'
+ import BackgroundImage from '$lib/BackgroundImage.svelte'
import Username from '$lib/minecraft/Username.svelte'
import Header from '$lib/Header.svelte'
import Head from '$lib/Head.svelte'
- import { onDestroy } from 'svelte'
export let data: CleanUser
@@ -53,22 +53,11 @@
isActiveProfileOnline = Date.now() / 1000 - 60 < activeProfileLastSave
}
-
- // cursed svelte :D
- $: bodyStyle = data.customization?.backgroundUrl
- ? `<style>:root{--background:url(${data.customization.backgroundUrl})}</style>`
- : ''
-
- // get rid of the body style when we leave the page
- // not doing this will sometimes cause the background to stay
- onDestroy(() => {
- bodyStyle = ''
- })
</script>
-<svelte:head>
- {@html bodyStyle}
-</svelte:head>
+{#if data.customization?.backgroundUrl}
+ <BackgroundImage url={data.customization.backgroundUrl} />
+{/if}
<Head title={data.player ? `${data.player.username}'s SkyBlock profiles` : 'Invalid player'} />
<Header />