From c680e2463046f4123f6ef3710e5cf9655cf3da57 Mon Sep 17 00:00:00 2001
From: mat
Date: Mon, 21 Feb 2022 20:43:55 -0600
Subject: add collections and zones
---
src/app.css | 3 ++
src/lib/APITypes.d.ts | 16 +++++++++
src/lib/layout/Loader.svelte | 5 +--
src/lib/minecraft/inventory.ts | 5 +--
src/lib/sections/Collections.svelte | 56 +++++++++++++++++++++++++++++
src/lib/sections/Minions.svelte | 12 -------
src/lib/sections/Zones.svelte | 38 ++++++++++++++++++++
src/routes/__error.svelte | 53 +++++++++++++++++++++++++++
src/routes/index.svelte | 4 +++
src/routes/player/[player]/[profile].svelte | 14 ++++++++
src/routes/player/[player]/index.svelte | 25 +++++++------
11 files changed, 204 insertions(+), 27 deletions(-)
create mode 100644 src/lib/sections/Collections.svelte
create mode 100644 src/lib/sections/Zones.svelte
create mode 100644 src/routes/__error.svelte
(limited to 'src')
diff --git a/src/app.css b/src/app.css
index abba4bf..6c9576f 100644
--- a/src/app.css
+++ b/src/app.css
@@ -97,16 +97,19 @@
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
+
body {
font-family: 'Atkinson Hyperlegible', sans-serif;
color: var(--theme-main-text);
background-color: var(--theme-main-background);
margin: 0;
overflow-x: hidden;
+ height: 100%;
}
html {
scroll-behavior: smooth;
+ height: 100%;
}
/* content is uglier when its max width */
diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts
index 2f1c9ff..119e5b6 100644
--- a/src/lib/APITypes.d.ts
+++ b/src/lib/APITypes.d.ts
@@ -122,3 +122,19 @@ export interface CleanFullProfileBasicMembers extends CleanProfile {
minion_count: number
maxUniqueMinions: number
}
+
+declare const COLLECTIONS: {
+ readonly farming: readonly ["wheat", "carrot", "potato", "pumpkin", "melon_slice", "wheat_seeds", "red_mushroom", "cocoa_beans", "cactus", "sugar_cane", "feather", "leather", "porkchop", "chicken", "mutton", "rabbit", "nether_wart"]
+ readonly mining: readonly ["cobblestone", "coal", "iron_ingot", "gold_ingot", "diamond", "lapis_lazuli", "emerald", "redstone", "quartz", "obsidian", "glowstone_dust", "gravel", "ice", "netherrack", "sand", "end_stone", "mithril_ore", "gemstone", "hard_stone"]
+ readonly combat: readonly ["rotten_flesh", "bone", "string", "spider_eye", "gunpowder", "ender_pearl", "ghast_tear", "slime_ball", "blaze_rod", "magma_cream"]
+ readonly foraging: readonly ["oak_log", "spruce_log", "birch_log", "jungle_log", "acacia_log", "dark_oak_log"]
+ readonly fishing: readonly ["cod", "salmon", "tropical_fish", "pufferfish", "prismarine_shard", "prismarine_crystals", "clay_ball", "lily_pad", "ink_sac", "sponge"]
+ readonly unknown: readonly []
+}
+declare type CollectionCategory = keyof typeof COLLECTIONS
+export interface Collection {
+ name: string
+ xp: number
+ level: number
+ category: CollectionCategory
+}
diff --git a/src/lib/layout/Loader.svelte b/src/lib/layout/Loader.svelte
index 8347e16..524d975 100644
--- a/src/lib/layout/Loader.svelte
+++ b/src/lib/layout/Loader.svelte
@@ -41,9 +41,10 @@
left: 0px;
top: 0px;
transition: width 1s cubic-bezier(0.4, 0, 0.2, 1), opacity 100ms linear;
- height: 8px;
+ height: 6px;
z-index: 20;
/* add a faint glow effect */
- background: -moz-linear-gradient(top, #16e 0%, #16e 50%, #16e5 50%, #16e0 100%);
+ /* background: -moz-linear-gradient(top, #16e 0%, #16e 50%, #16e5 50%, #16e0 100%); */
+ background: linear-gradient(to bottom, #16e 0%, #16e 50%, #16e5 50%, #16e0 100%);
}
diff --git a/src/lib/minecraft/inventory.ts b/src/lib/minecraft/inventory.ts
index faaea85..7b35f0e 100644
--- a/src/lib/minecraft/inventory.ts
+++ b/src/lib/minecraft/inventory.ts
@@ -58,9 +58,10 @@ export function itemToUrl(item: Item, packName?: string): string {
return textureUrl
}
-export async function skyblockItemToUrl(skyblockItemName: string) {
+export function skyblockItemToUrl(skyblockItemName: string) {
const item = skyblockItemNameToItem(skyblockItemName)
- const itemTextureUrl = await itemToUrl(item, 'packshq')
+ console.log(skyblockItemName, item)
+ const itemTextureUrl = itemToUrl(item, 'packshq')
return itemTextureUrl
}
diff --git a/src/lib/sections/Collections.svelte b/src/lib/sections/Collections.svelte
new file mode 100644
index 0000000..2e03d3f
--- /dev/null
+++ b/src/lib/sections/Collections.svelte
@@ -0,0 +1,56 @@
+
+
+{#if data.member.collections}
+ {#each Object.keys(categories).sort() as categoryName}
+ {@const collections = categories[categoryName]}
+ {cleanId(categoryName)}
+
+ {#each collections as collection}
+
+
+
+ Amount: {collection.xp.toLocaleString()}
+
+ {cleanId(collection.name)}
+ {collection.level}
+
+
+ {/each}
+
+ {/each}
+{/if}
+
+
diff --git a/src/lib/sections/Minions.svelte b/src/lib/sections/Minions.svelte
index 2e4483c..63dda51 100644
--- a/src/lib/sections/Minions.svelte
+++ b/src/lib/sections/Minions.svelte
@@ -24,18 +24,6 @@
{/each}
-
diff --git a/src/routes/__error.svelte b/src/routes/__error.svelte
new file mode 100644
index 0000000..b49d2a1
--- /dev/null
+++ b/src/routes/__error.svelte
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
{status}
+
{error.message}
+
Home
+
+
+
+
diff --git a/src/routes/index.svelte b/src/routes/index.svelte
index 524df13..9bfbd29 100644
--- a/src/routes/index.svelte
+++ b/src/routes/index.svelte
@@ -1,4 +1,6 @@
@@ -6,6 +8,8 @@
Home
+
+
diff --git a/src/routes/player/[player]/[profile].svelte b/src/routes/player/[player]/[profile].svelte
index 1a86b44..e31108b 100644
--- a/src/routes/player/[player]/[profile].svelte
+++ b/src/routes/player/[player]/[profile].svelte
@@ -37,6 +37,8 @@
import { cleanId } from '$lib/utils'
import Collapsible from '$lib/Collapsible.svelte'
import Minions from '$lib/sections/Minions.svelte'
+ import Zones from '$lib/sections/Zones.svelte'
+ import Collections from '$lib/sections/Collections.svelte'
export let data: CleanMemberProfile
export let pack: string
@@ -127,6 +129,18 @@
+
+
diff --git a/src/routes/player/[player]/index.svelte b/src/routes/player/[player]/index.svelte
index 2ba7ba1..460cd28 100644
--- a/src/routes/player/[player]/index.svelte
+++ b/src/routes/player/[player]/index.svelte
@@ -36,19 +36,22 @@
let activeProfile: CleanProfile | null = null
let activeProfileLastSave: number = 0
-
- if (data.profiles)
- for (const profile of data.profiles) {
- if (profile.members)
- for (const member of profile.members) {
- if (member.uuid === data.player?.uuid && member.last_save > activeProfileLastSave) {
- activeProfile = profile
- activeProfileLastSave = member.last_save
+ let isActiveProfileOnline: boolean
+
+ $: {
+ if (data.profiles)
+ for (const profile of data.profiles) {
+ if (profile.members)
+ for (const member of profile.members) {
+ if (member.uuid === data.player?.uuid && member.last_save > activeProfileLastSave) {
+ activeProfile = profile
+ activeProfileLastSave = member.last_save
+ }
}
- }
- }
+ }
- const isActiveProfileOnline = Date.now() / 1000 - 60 < activeProfileLastSave
+ isActiveProfileOnline = Date.now() / 1000 - 60 < activeProfileLastSave
+ }
// cursed svelte :D
$: bodyStyle = data.customization?.backgroundUrl
--
cgit