Updated layout and added suspense
This commit is contained in:
@@ -4,19 +4,21 @@ import { Settings } from "lucide-react"
|
|||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
import { ReactNode } from "react"
|
import { ReactNode } from "react"
|
||||||
|
|
||||||
export default function RootLayout({ children }: Readonly<{ children: ReactNode }>) {
|
export default function StatsLayout({ children }: Readonly<{ children: ReactNode }>) {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<nav className="flex items-center justify-between px-6 py-4 border-b">
|
<header className="fixed w-screen bg-background/50 backdrop-blur-sm">
|
||||||
|
<nav className="flex justify-between items-center px-6 border-b h-header">
|
||||||
<Link href="/">
|
<Link href="/">
|
||||||
<span className="font-semibold text-lg">Hypixel Stats</span>
|
<span className="text-lg font-semibold">Hypixel Stats</span>
|
||||||
</Link>
|
</Link>
|
||||||
<SearchBar navbar />
|
<SearchBar navbar />
|
||||||
<Button variant="ghost" size="icon" aria-label="Settings">
|
<Button variant="ghost" size="icon" aria-label="Settings">
|
||||||
<Settings className="h-5 w-5" />
|
<Settings className="w-5 h-5" />
|
||||||
</Button>
|
</Button>
|
||||||
</nav>
|
</nav>
|
||||||
<div>
|
</header>
|
||||||
|
<div className="pt-header">
|
||||||
{children}
|
{children}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Card, CardContent } from "@/components/ui/card"
|
import { Card, CardContent } from "@/components/ui/card"
|
||||||
|
import { Separator } from "@/components/ui/separator"
|
||||||
import { getColor } from "@/data/colors"
|
import { getColor } from "@/data/colors"
|
||||||
import { formatDate, formatNumber } from "@/lib/formatters"
|
import { formatDate, formatNumber } from "@/lib/formatters"
|
||||||
import { getGuildMember, getGuildRankTag, getMemberGEXP, getMemberWeeklyGEXP } from "@/lib/hypixel/guild"
|
import { getGuildMember, getGuildRankTag, getMemberGEXP, getMemberWeeklyGEXP } from "@/lib/hypixel/guild"
|
||||||
import { getCoinMultiplier, getTotalChallenges, getTotalCoins, getTotalQuests, rewardClaimed } from "@/lib/hypixel/stats"
|
import { getCoinMultiplier, getTotalChallenges, getTotalCoins, getTotalQuests, rewardClaimed } from "@/lib/hypixel/stats"
|
||||||
import { Guild } from "@/lib/schema/guild"
|
import { Guild } from "@/lib/schema/guild"
|
||||||
import { Player } from "@/lib/schema/player"
|
import { Player } from "@/lib/schema/player"
|
||||||
import { Separator } from "@radix-ui/react-separator"
|
|
||||||
import Link from "next/link"
|
import Link from "next/link"
|
||||||
import SocialIcons from "./SocialIcons"
|
import SocialIcons from "./SocialIcons"
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ type SidebarProps = {
|
|||||||
|
|
||||||
export default function Sidebar({ level, ign, player, guild }: SidebarProps) {
|
export default function Sidebar({ level, ign, player, guild }: SidebarProps) {
|
||||||
return (
|
return (
|
||||||
<Card className="w-1/4">
|
<Card className="overflow-hidden w-1/4 max-h-fit">
|
||||||
<CardContent>
|
<CardContent>
|
||||||
<div className="flex justify-between px-8">
|
<div className="flex justify-between px-8">
|
||||||
<div className="text-center">
|
<div className="text-center">
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
import { Card, CardContent } from "@/components/ui/card"
|
import { Card, CardContent } from "@/components/ui/card"
|
||||||
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"
|
||||||
|
import { Separator } from "@/components/ui/separator"
|
||||||
import { getBWLevelForExp, getTotalExpForLevel } from "@/lib/hypixel/bedwarsLevel"
|
import { getBWLevelForExp, getTotalExpForLevel } from "@/lib/hypixel/bedwarsLevel"
|
||||||
import { getProgress } from "@/lib/hypixel/general"
|
import { getProgress } from "@/lib/hypixel/general"
|
||||||
import { Player } from "@/lib/schema/player"
|
import { Player } from "@/lib/schema/player"
|
||||||
import { Separator } from "@radix-ui/react-separator"
|
|
||||||
import { ChevronDown, ChevronUp, Menu } from "lucide-react"
|
import { ChevronDown, ChevronUp, Menu } from "lucide-react"
|
||||||
import { useEffect, useRef, useState } from "react"
|
import { useEffect, useRef, useState } from "react"
|
||||||
import CollapsedStats from "../../_components/CollapsedStats"
|
import CollapsedStats from "../../_components/CollapsedStats"
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import { getGuild } from "@/lib/hypixel/api/guild"
|
|||||||
import { getUuid } from "@/lib/hypixel/api/mojang"
|
import { getUuid } from "@/lib/hypixel/api/mojang"
|
||||||
import { getPlayer } from "@/lib/hypixel/api/player"
|
import { getPlayer } from "@/lib/hypixel/api/player"
|
||||||
import { getExactLevel } from "@/lib/hypixel/level"
|
import { getExactLevel } from "@/lib/hypixel/level"
|
||||||
|
import { Loader2Icon } from "lucide-react"
|
||||||
|
import { Suspense } from "react"
|
||||||
import Sidebar from "./_components/Sidebar"
|
import Sidebar from "./_components/Sidebar"
|
||||||
import BedwarsStats from "./_stats/bedwars/bedwars"
|
import BedwarsStats from "./_stats/bedwars/bedwars"
|
||||||
|
|
||||||
@@ -11,8 +13,23 @@ export default async function PlayerPage({
|
|||||||
}: {
|
}: {
|
||||||
params: Promise<{ ign: string }>
|
params: Promise<{ ign: string }>
|
||||||
}) {
|
}) {
|
||||||
const { ign: pign } = await params
|
const { ign } = await params
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Suspense
|
||||||
|
fallback={
|
||||||
|
<div className="flex flex-col justify-center items-center h-screen">
|
||||||
|
<Loader2Icon className="animate-spin size-30" />
|
||||||
|
<p>{`Loading stats for ${ign}`}</p>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<SuspendedPage ign={ign} />
|
||||||
|
</Suspense>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
async function SuspendedPage({ ign: pign }: { ign: string }) {
|
||||||
const uuid = await getUuid(pign)
|
const uuid = await getUuid(pign)
|
||||||
if (!uuid) {
|
if (!uuid) {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -22,6 +22,11 @@
|
|||||||
--color-mc-white: #FFFFFF;
|
--color-mc-white: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@theme inline {
|
||||||
|
--spacing-header: 3.75rem;
|
||||||
|
--spacing-content: calc(100vh - var(--spacing-header));
|
||||||
|
}
|
||||||
|
|
||||||
@theme inline {
|
@theme inline {
|
||||||
--radius-sm: calc(var(--radius) - 4px);
|
--radius-sm: calc(var(--radius) - 4px);
|
||||||
--radius-md: calc(var(--radius) - 2px);
|
--radius-md: calc(var(--radius) - 2px);
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import z from "zod"
|
import z from "zod"
|
||||||
|
import { bedwarsStatsSchema, skywarsStatsSchema } from "./stats"
|
||||||
|
|
||||||
export const playerSchema = z.looseObject({
|
export const playerSchema = z.looseObject({
|
||||||
player: z.looseObject({
|
player: z.looseObject({
|
||||||
@@ -12,194 +13,8 @@ export const playerSchema = z.looseObject({
|
|||||||
karma: z.number().default(0),
|
karma: z.number().default(0),
|
||||||
achievementPoints: z.number().default(0),
|
achievementPoints: z.number().default(0),
|
||||||
stats: z.looseObject({
|
stats: z.looseObject({
|
||||||
Bedwars: z.looseObject({
|
Bedwars: bedwarsStatsSchema.optional(),
|
||||||
Experience: z.number().default(0),
|
SkyWars: skywarsStatsSchema.optional()
|
||||||
coins: z.number().default(0),
|
|
||||||
winstreak: z.number().optional(),
|
|
||||||
kills_bedwars: z.number().default(0),
|
|
||||||
deaths_bedwars: z.number().default(0),
|
|
||||||
final_kills_bedwars: z.number().default(0),
|
|
||||||
final_deaths_bedwars: z.number().default(0),
|
|
||||||
wins_bedwars: z.number().default(0),
|
|
||||||
losses_bedwars: z.number().default(0),
|
|
||||||
beds_broken_bedwars: z.number().default(0),
|
|
||||||
beds_lost_bedwars: z.number().default(0),
|
|
||||||
total_challenges_completed: z.number().default(0),
|
|
||||||
iron_resources_collected_bedwars: z.number().default(0),
|
|
||||||
gold_resources_collected_bedwars: z.number().default(0),
|
|
||||||
diamond_resources_collected_bedwars: z.number().default(0),
|
|
||||||
emerald_resources_collected_bedwars: z.number().default(0),
|
|
||||||
_items_purchased_bedwars: z.number().default(0),
|
|
||||||
slumber: z.looseObject({
|
|
||||||
tickets: z.number().default(0),
|
|
||||||
bag_type: z.string(),
|
|
||||||
total_tickets_earned: z.number(),
|
|
||||||
doublers: z.number(),
|
|
||||||
room: z.record(z.string(), z.boolean())
|
|
||||||
}).optional(),
|
|
||||||
eight_one_winstreak: z.number().optional(),
|
|
||||||
eight_one_kills_bedwars: z.number().default(0),
|
|
||||||
eight_one_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_one_final_kills_bedwars: z.number().default(0),
|
|
||||||
eight_one_final_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_one_wins_bedwars: z.number().default(0),
|
|
||||||
eight_one_losses_bedwars: z.number().default(0),
|
|
||||||
eight_one_beds_broken_bedwars: z.number().default(0),
|
|
||||||
eight_one_beds_lost_bedwars: z.number().default(0),
|
|
||||||
eight_two_winstreak: z.number().optional(),
|
|
||||||
eight_two_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_final_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_final_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_wins_bedwars: z.number().default(0),
|
|
||||||
eight_two_losses_bedwars: z.number().default(0),
|
|
||||||
eight_two_beds_broken_bedwars: z.number().default(0),
|
|
||||||
eight_two_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_three_winstreak: z.number().optional(),
|
|
||||||
four_three_kills_bedwars: z.number().default(0),
|
|
||||||
four_three_deaths_bedwars: z.number().default(0),
|
|
||||||
four_three_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_three_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_three_wins_bedwars: z.number().default(0),
|
|
||||||
four_three_losses_bedwars: z.number().default(0),
|
|
||||||
four_three_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_three_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_winstreak: z.number().optional(),
|
|
||||||
four_four_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_beds_lost_bedwars: z.number().default(0),
|
|
||||||
two_four_winstreak: z.number().optional(),
|
|
||||||
two_four_kills_bedwars: z.number().default(0),
|
|
||||||
two_four_deaths_bedwars: z.number().default(0),
|
|
||||||
two_four_final_kills_bedwars: z.number().default(0),
|
|
||||||
two_four_final_deaths_bedwars: z.number().default(0),
|
|
||||||
two_four_wins_bedwars: z.number().default(0),
|
|
||||||
two_four_losses_bedwars: z.number().default(0),
|
|
||||||
two_four_beds_broken_bedwars: z.number().default(0),
|
|
||||||
two_four_beds_lost_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_winstreak: z.number().optional(),
|
|
||||||
eight_two_rush_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_final_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_final_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_wins_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_losses_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_beds_broken_bedwars: z.number().default(0),
|
|
||||||
eight_two_rush_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_winstreak: z.number().optional(),
|
|
||||||
four_four_rush_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_rush_beds_lost_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_winstreak: z.number().optional(),
|
|
||||||
eight_two_ultimate_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_final_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_final_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_wins_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_losses_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_beds_broken_bedwars: z.number().default(0),
|
|
||||||
eight_two_ultimate_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_winstreak: z.number().optional(),
|
|
||||||
four_four_ultimate_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_ultimate_beds_lost_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_winstreak: z.number().optional(),
|
|
||||||
eight_two_lucky_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_final_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_final_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_wins_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_losses_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_beds_broken_bedwars: z.number().default(0),
|
|
||||||
eight_two_lucky_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_winstreak: z.number().optional(),
|
|
||||||
four_four_lucky_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_lucky_beds_lost_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_winstreak: z.number().optional(),
|
|
||||||
eight_two_voidless_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_final_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_final_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_wins_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_losses_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_beds_broken_bedwars: z.number().default(0),
|
|
||||||
eight_two_voidless_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_winstreak: z.number().optional(),
|
|
||||||
four_four_voidless_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_voidless_beds_lost_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_winstreak: z.number().optional(),
|
|
||||||
eight_two_armed_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_final_kills_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_final_deaths_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_wins_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_losses_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_beds_broken_bedwars: z.number().default(0),
|
|
||||||
eight_two_armed_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_winstreak: z.number().optional(),
|
|
||||||
four_four_armed_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_armed_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_winstreak: z.number().optional(),
|
|
||||||
four_four_swap_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_swap_beds_lost_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_winstreak: z.number().optional(),
|
|
||||||
four_four_underworld_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_final_kills_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_final_deaths_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_wins_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_losses_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_beds_broken_bedwars: z.number().default(0),
|
|
||||||
four_four_underworld_beds_lost_bedwars: z.number().default(0),
|
|
||||||
castle_winstreak: z.number().optional(),
|
|
||||||
castle_kills_bedwars: z.number().default(0),
|
|
||||||
castle_deaths_bedwars: z.number().default(0),
|
|
||||||
castle_final_kills_bedwars: z.number().default(0),
|
|
||||||
castle_final_deaths_bedwars: z.number().default(0),
|
|
||||||
castle_wins_bedwars: z.number().default(0),
|
|
||||||
castle_losses_bedwars: z.number().default(0),
|
|
||||||
castle_beds_broken_bedwars: z.number().default(0),
|
|
||||||
castle_beds_lost_bedwars: z.number().default(0)
|
|
||||||
}).optional()
|
|
||||||
}),
|
}),
|
||||||
quests: z.record(
|
quests: z.record(
|
||||||
z.string(),
|
z.string(),
|
||||||
|
|||||||
192
src/lib/schema/stats.ts
Normal file
192
src/lib/schema/stats.ts
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
import z from "zod"
|
||||||
|
|
||||||
|
export const bedwarsStatsSchema = z.looseObject({
|
||||||
|
Experience: z.number().default(0),
|
||||||
|
coins: z.number().default(0),
|
||||||
|
winstreak: z.number().optional(),
|
||||||
|
kills_bedwars: z.number().default(0),
|
||||||
|
deaths_bedwars: z.number().default(0),
|
||||||
|
final_kills_bedwars: z.number().default(0),
|
||||||
|
final_deaths_bedwars: z.number().default(0),
|
||||||
|
wins_bedwars: z.number().default(0),
|
||||||
|
losses_bedwars: z.number().default(0),
|
||||||
|
beds_broken_bedwars: z.number().default(0),
|
||||||
|
beds_lost_bedwars: z.number().default(0),
|
||||||
|
total_challenges_completed: z.number().default(0),
|
||||||
|
iron_resources_collected_bedwars: z.number().default(0),
|
||||||
|
gold_resources_collected_bedwars: z.number().default(0),
|
||||||
|
diamond_resources_collected_bedwars: z.number().default(0),
|
||||||
|
emerald_resources_collected_bedwars: z.number().default(0),
|
||||||
|
_items_purchased_bedwars: z.number().default(0),
|
||||||
|
slumber: z.looseObject({
|
||||||
|
tickets: z.number().default(0),
|
||||||
|
bag_type: z.string(),
|
||||||
|
total_tickets_earned: z.number(),
|
||||||
|
doublers: z.number(),
|
||||||
|
room: z.record(z.string(), z.boolean())
|
||||||
|
}).optional(),
|
||||||
|
eight_one_winstreak: z.number().optional(),
|
||||||
|
eight_one_kills_bedwars: z.number().default(0),
|
||||||
|
eight_one_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_one_final_kills_bedwars: z.number().default(0),
|
||||||
|
eight_one_final_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_one_wins_bedwars: z.number().default(0),
|
||||||
|
eight_one_losses_bedwars: z.number().default(0),
|
||||||
|
eight_one_beds_broken_bedwars: z.number().default(0),
|
||||||
|
eight_one_beds_lost_bedwars: z.number().default(0),
|
||||||
|
eight_two_winstreak: z.number().optional(),
|
||||||
|
eight_two_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_final_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_final_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_wins_bedwars: z.number().default(0),
|
||||||
|
eight_two_losses_bedwars: z.number().default(0),
|
||||||
|
eight_two_beds_broken_bedwars: z.number().default(0),
|
||||||
|
eight_two_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_three_winstreak: z.number().optional(),
|
||||||
|
four_three_kills_bedwars: z.number().default(0),
|
||||||
|
four_three_deaths_bedwars: z.number().default(0),
|
||||||
|
four_three_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_three_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_three_wins_bedwars: z.number().default(0),
|
||||||
|
four_three_losses_bedwars: z.number().default(0),
|
||||||
|
four_three_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_three_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_winstreak: z.number().optional(),
|
||||||
|
four_four_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_beds_lost_bedwars: z.number().default(0),
|
||||||
|
two_four_winstreak: z.number().optional(),
|
||||||
|
two_four_kills_bedwars: z.number().default(0),
|
||||||
|
two_four_deaths_bedwars: z.number().default(0),
|
||||||
|
two_four_final_kills_bedwars: z.number().default(0),
|
||||||
|
two_four_final_deaths_bedwars: z.number().default(0),
|
||||||
|
two_four_wins_bedwars: z.number().default(0),
|
||||||
|
two_four_losses_bedwars: z.number().default(0),
|
||||||
|
two_four_beds_broken_bedwars: z.number().default(0),
|
||||||
|
two_four_beds_lost_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_winstreak: z.number().optional(),
|
||||||
|
eight_two_rush_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_final_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_final_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_wins_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_losses_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_beds_broken_bedwars: z.number().default(0),
|
||||||
|
eight_two_rush_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_winstreak: z.number().optional(),
|
||||||
|
four_four_rush_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_rush_beds_lost_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_winstreak: z.number().optional(),
|
||||||
|
eight_two_ultimate_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_final_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_final_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_wins_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_losses_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_beds_broken_bedwars: z.number().default(0),
|
||||||
|
eight_two_ultimate_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_winstreak: z.number().optional(),
|
||||||
|
four_four_ultimate_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_ultimate_beds_lost_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_winstreak: z.number().optional(),
|
||||||
|
eight_two_lucky_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_final_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_final_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_wins_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_losses_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_beds_broken_bedwars: z.number().default(0),
|
||||||
|
eight_two_lucky_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_winstreak: z.number().optional(),
|
||||||
|
four_four_lucky_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_lucky_beds_lost_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_winstreak: z.number().optional(),
|
||||||
|
eight_two_voidless_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_final_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_final_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_wins_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_losses_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_beds_broken_bedwars: z.number().default(0),
|
||||||
|
eight_two_voidless_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_winstreak: z.number().optional(),
|
||||||
|
four_four_voidless_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_voidless_beds_lost_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_winstreak: z.number().optional(),
|
||||||
|
eight_two_armed_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_final_kills_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_final_deaths_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_wins_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_losses_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_beds_broken_bedwars: z.number().default(0),
|
||||||
|
eight_two_armed_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_winstreak: z.number().optional(),
|
||||||
|
four_four_armed_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_armed_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_winstreak: z.number().optional(),
|
||||||
|
four_four_swap_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_swap_beds_lost_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_winstreak: z.number().optional(),
|
||||||
|
four_four_underworld_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_final_kills_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_final_deaths_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_wins_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_losses_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_beds_broken_bedwars: z.number().default(0),
|
||||||
|
four_four_underworld_beds_lost_bedwars: z.number().default(0),
|
||||||
|
castle_winstreak: z.number().optional(),
|
||||||
|
castle_kills_bedwars: z.number().default(0),
|
||||||
|
castle_deaths_bedwars: z.number().default(0),
|
||||||
|
castle_final_kills_bedwars: z.number().default(0),
|
||||||
|
castle_final_deaths_bedwars: z.number().default(0),
|
||||||
|
castle_wins_bedwars: z.number().default(0),
|
||||||
|
castle_losses_bedwars: z.number().default(0),
|
||||||
|
castle_beds_broken_bedwars: z.number().default(0),
|
||||||
|
castle_beds_lost_bedwars: z.number().default(0)
|
||||||
|
})
|
||||||
|
|
||||||
|
export const skywarsStatsSchema = z.looseObject({})
|
||||||
Reference in New Issue
Block a user