diff --git a/src/app/(stats)/player/[ign]/_stats/bedwars/table.tsx b/src/app/(stats)/player/[ign]/_stats/bedwars/table.tsx index b0c09b1..0696eea 100644 --- a/src/app/(stats)/player/[ign]/_stats/bedwars/table.tsx +++ b/src/app/(stats)/player/[ign]/_stats/bedwars/table.tsx @@ -1,6 +1,6 @@ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table" import { formatNumber } from "@/lib/formatters" -import { concatStatArrays } from "@/lib/funcs" +import { concatBedwarsStats } from "@/lib/funcs" import { _BedwarsStats, getBedwarsModeStats, getBestMode } from "@/lib/hypixel/bedwars" import { NonNullStats } from "@/lib/schema/player" import { cn } from "@/lib/utils" @@ -131,7 +131,7 @@ function CoreModeStats({ stats }: { stats: NonNullStats["Bedwars"] }) { const threesStats = getBedwarsModeStats("3s", stats as _BedwarsStats, true) const foursStats = getBedwarsModeStats("4s", stats as _BedwarsStats, true) - const combinedStats = concatStatArrays(soloStats, doublesStats, threesStats, foursStats) + const combinedStats = concatBedwarsStats(soloStats, doublesStats, threesStats, foursStats) return ( @@ -345,7 +345,7 @@ function AllModeStats({ stats }: { stats: NonNullStats["Bedwars"] }) { const underworld4sStats = getBedwarsModeStats("underworld_4s", stats as _BedwarsStats, true) const castleStats = getBedwarsModeStats("castle", stats as _BedwarsStats, true) - const finalStats = concatStatArrays( + const finalStats = concatBedwarsStats( soloStats, doublesStats, threesStats, diff --git a/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx b/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx index d8fee87..3479419 100644 --- a/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx +++ b/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx @@ -12,6 +12,7 @@ import { useEffect, useRef, useState } from "react" import CollapsedStats from "../../_components/CollapsedStats" import { SkywarsLevel, SkywarsProgress } from "./components" import SkyWarsGeneralStats from "./stats" +import SkywarsStatTable from "./table" export default function SkyWarsStats({ stats }: { stats: NonNullStats["SkyWars"] }) { const ref = useRef(null) @@ -86,6 +87,7 @@ export default function SkyWarsStats({ stats }: { stats: NonNullStats["SkyWars"] + diff --git a/src/app/(stats)/player/[ign]/_stats/skywars/table.tsx b/src/app/(stats)/player/[ign]/_stats/skywars/table.tsx index c640b4e..2e33a51 100644 --- a/src/app/(stats)/player/[ign]/_stats/skywars/table.tsx +++ b/src/app/(stats)/player/[ign]/_stats/skywars/table.tsx @@ -140,3 +140,24 @@ function Ranked({ stats }: { stats: NonNullStats["SkyWars"] }) { ) } + +// function OverallModeStats({ stats }: { stats: NonNullStats["SkyWars"] }) { +// const normal = getSkywarsModeStats("normal", stats as _SkywarsStats, true) +// const insane = getSkywarsModeStats("insane", stats as _SkywarsStats, true) +// const teams_normal = getSkywarsModeStats("teams_normal", stats as _SkywarsStats, true) +// const teams_insane = getSkywarsModeStats("teams_insane", stats as _SkywarsStats, true) +// const mega = getSkywarsModeStats("mega", stats as _SkywarsStats, true) +// const mega_doubles = getSkywarsModeStats("mega_doubles", stats as _SkywarsStats, true) +// const ranked = getSkywarsModeStats("ranked", stats as _SkywarsStats, true) +// +// const combinedStats = concatStatArrays(soloStats, doublesStats, threesStats, foursStats) +// +// return ( +// +// Core Modes +// {combinedStats.map((v, i) => { +// return {typeof v === "number" ? formatNumber(v) : v} +// })} +// +// ) +// } diff --git a/src/lib/funcs.ts b/src/lib/funcs.ts index 9589a71..228bbd0 100644 --- a/src/lib/funcs.ts +++ b/src/lib/funcs.ts @@ -1,6 +1,7 @@ import { BedwarsModeStats } from "./hypixel/bedwars" +import { devide } from "./hypixel/general" -export function concatStatArrays(...stats: BedwarsModeStats[]) { +export function concatBedwarsStats(...stats: BedwarsModeStats[]) { if (stats.length === 0) return [] const base: BedwarsModeStats = { @@ -29,11 +30,6 @@ export function concatStatArrays(...stats: BedwarsModeStats[]) { base.beds_lost_bedwars += s.beds_lost_bedwars } - const devide = (a: number, b: number) => { - if (b === 0) return a - return a / b - } - const ret = { ...base, winstreak: base.winstreak < 0 ? "?" : base.winstreak, diff --git a/src/lib/hypixel/bedwars.ts b/src/lib/hypixel/bedwars.ts index ac5a4f4..6ab8b1c 100644 --- a/src/lib/hypixel/bedwars.ts +++ b/src/lib/hypixel/bedwars.ts @@ -1,5 +1,6 @@ import { PRESTIGE_ICONS, PRESTIGES, SLUMBER_ROOMS, SLUMBER_WALLETS } from "@/data/hypixel/bedwars" import { floorLevel } from "./formatters" +import { devide } from "./general" export function getBedwarsStar(level: number) { if (level < 1100) { @@ -161,12 +162,6 @@ export function getBedwarsModeStats(mode: Mode, stats: _BedwarsStats, raw = fals } } -function devide(num: number, num2: number) { - if (num2 === 0) return num - - return num / num2 -} - function bedwarsModeStats(prefix: string, stats: _BedwarsStats, raw = false) { if (raw) { return { diff --git a/src/lib/hypixel/general.ts b/src/lib/hypixel/general.ts index 959c4ef..ea897b4 100644 --- a/src/lib/hypixel/general.ts +++ b/src/lib/hypixel/general.ts @@ -5,3 +5,9 @@ export function getProgress(min: number, mid: number, max: number) { return progress / diff * 100 } + +export function devide(num: number, num2: number) { + if (num2 === 0) return num + + return num / num2 +} diff --git a/src/lib/hypixel/skywars.ts b/src/lib/hypixel/skywars.ts index 9fcc520..110fd44 100644 --- a/src/lib/hypixel/skywars.ts +++ b/src/lib/hypixel/skywars.ts @@ -99,7 +99,7 @@ export function getSkywarsModeStats(mode: Mode, stats: _SkywarsStats, raw = fals case "teams_insane": return skywarsModeStats("team_insane", stats, raw) case "mega": - return skywarsModeStats("mega_mega", stats, raw) + return skywarsModeStats("mega", stats, raw) case "mega_doubles": return skywarsModeStats("mega_doubles", stats, raw) case "ranked": diff --git a/src/lib/schema/stats.ts b/src/lib/schema/stats.ts index f9c3f63..5556c46 100644 --- a/src/lib/schema/stats.ts +++ b/src/lib/schema/stats.ts @@ -218,5 +218,33 @@ export const skywarsStatsSchema = z.looseObject({ souls: z.number().default(0), paid_souls: z.number().default(0), soul_well: z.number().default(0), - packages: z.array(z.string()) + packages: z.array(z.string()), + kills_solo_normal: z.number().default(0), + deaths_solo_normal: z.number().default(0), + wins_solo_normal: z.number().default(0), + losses_solo_normal: z.number().default(0), + kills_solo_insane: z.number().default(0), + deaths_solo_insane: z.number().default(0), + wins_solo_insane: z.number().default(0), + losses_solo_insane: z.number().default(0), + kills_team_normal: z.number().default(0), + deaths_team_normal: z.number().default(0), + wins_team_normal: z.number().default(0), + losses_team_normal: z.number().default(0), + kills_team_insane: z.number().default(0), + deaths_team_insane: z.number().default(0), + wins_team_insane: z.number().default(0), + losses_team_insane: z.number().default(0), + kills_mega: z.number().default(0), + deaths_mega: z.number().default(0), + wins_mega: z.number().default(0), + losses_mega: z.number().default(0), + kills_mega_doubles: z.number().default(0), + deaths_mega_doubles: z.number().default(0), + wins_mega_doubles: z.number().default(0), + losses_mega_doubles: z.number().default(0), + kills_ranked_normal: z.number().default(0), + deaths_ranked_normal: z.number().default(0), + wins_ranked_normal: z.number().default(0), + losses_ranked_normal: z.number().default(0) })