UPdated mode stats types

This commit is contained in:
2025-09-12 20:18:58 +02:00
parent 8283324136
commit 9ceaaffa13
7 changed files with 86 additions and 90 deletions

View File

@@ -1,6 +1,6 @@
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import { formatNumber } from "@/lib/formatters"
import { _BedwarsStats, concatBedwarsStats, getBedwarsModeStats, getBestMode } from "@/lib/hypixel/bedwars/bedwars"
import { concatBedwarsStats, getBedwarsModeStats, getBestMode } from "@/lib/hypixel/bedwars/bedwars"
import { NonNullStats } from "@/lib/schema/player"
import { cn } from "@/lib/utils"
@@ -77,18 +77,16 @@ const ROWS: RowConfig[] = [
]
function StatRow({ cfg, stats }: { cfg: RowConfig, stats: NonNullable<NonNullStats["Bedwars"]> }) {
const bedwars = stats as _BedwarsStats
let values: (number | string)[] = []
if (cfg.key) {
values = getBedwarsModeStats(cfg.key, bedwars) as (number | string)[]
values = getBedwarsModeStats(cfg.key, stats) as (number | string)[]
} else if (cfg.aggregateOf) {
const rawArrays = cfg.aggregateOf.map(k => getBedwarsModeStats(k, bedwars, true))
const rawArrays = cfg.aggregateOf.map(k => getBedwarsModeStats(k, stats, true))
values = concatBedwarsStats(...rawArrays)
}
const isBest = cfg.highlightBest && cfg.key && getBestMode(bedwars) === cfg.key
const isBest = cfg.highlightBest && cfg.key && getBestMode(stats) === cfg.key
const className = cn(
cfg.bold && "font-bold",

View File

@@ -1,6 +1,6 @@
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import { formatNumber } from "@/lib/formatters"
import { _SkywarsStats, concatSkywarsStats, getBestSkywarsMode, getSkywarsModeStats } from "@/lib/hypixel/skywars/skywars"
import { concatSkywarsStats, getBestSkywarsMode, getSkywarsModeStats } from "@/lib/hypixel/skywars/skywars"
import { NonNullStats } from "@/lib/schema/player"
import { cn } from "@/lib/utils"
@@ -44,9 +44,9 @@ function SkywarsTableHeader() {
)
}
function Normal({ stats }: { stats: NonNullStats["SkyWars"] }) {
const modeStats = getSkywarsModeStats("normal", stats as _SkywarsStats)
const isBest = getBestSkywarsMode(stats as _SkywarsStats) === "normal"
function Normal({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const modeStats = getSkywarsModeStats("normal", stats)
const isBest = getBestSkywarsMode(stats) === "normal"
return (
<TableRow className={cn(isBest ? "font-bold text-mc-light-purple" : undefined)}>
@@ -58,9 +58,9 @@ function Normal({ stats }: { stats: NonNullStats["SkyWars"] }) {
)
}
function Insane({ stats }: { stats: NonNullStats["SkyWars"] }) {
const modeStats = getSkywarsModeStats("insane", stats as _SkywarsStats)
const isBest = getBestSkywarsMode(stats as _SkywarsStats) === "insane"
function Insane({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const modeStats = getSkywarsModeStats("insane", stats)
const isBest = getBestSkywarsMode(stats) === "insane"
return (
<TableRow className={cn(isBest ? "font-bold text-mc-light-purple" : undefined)}>
@@ -72,9 +72,9 @@ function Insane({ stats }: { stats: NonNullStats["SkyWars"] }) {
)
}
function TeamsNormal({ stats }: { stats: NonNullStats["SkyWars"] }) {
const modeStats = getSkywarsModeStats("teams_normal", stats as _SkywarsStats)
const isBest = getBestSkywarsMode(stats as _SkywarsStats) === "teams_normal"
function TeamsNormal({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const modeStats = getSkywarsModeStats("teams_normal", stats)
const isBest = getBestSkywarsMode(stats) === "teams_normal"
return (
<TableRow className={cn(isBest ? "font-bold text-mc-light-purple" : undefined)}>
@@ -86,9 +86,9 @@ function TeamsNormal({ stats }: { stats: NonNullStats["SkyWars"] }) {
)
}
function TeamsInsane({ stats }: { stats: NonNullStats["SkyWars"] }) {
const modeStats = getSkywarsModeStats("teams_insane", stats as _SkywarsStats)
const isBest = getBestSkywarsMode(stats as _SkywarsStats) === "teams_insane"
function TeamsInsane({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const modeStats = getSkywarsModeStats("teams_insane", stats)
const isBest = getBestSkywarsMode(stats) === "teams_insane"
return (
<TableRow className={cn(isBest ? "font-bold text-mc-light-purple" : undefined)}>
@@ -100,9 +100,9 @@ function TeamsInsane({ stats }: { stats: NonNullStats["SkyWars"] }) {
)
}
function Mega({ stats }: { stats: NonNullStats["SkyWars"] }) {
const modeStats = getSkywarsModeStats("mega", stats as _SkywarsStats)
const isBest = getBestSkywarsMode(stats as _SkywarsStats) === "mega"
function Mega({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const modeStats = getSkywarsModeStats("mega", stats)
const isBest = getBestSkywarsMode(stats) === "mega"
return (
<TableRow className={cn(isBest ? "font-bold text-mc-light-purple" : undefined)}>
@@ -114,9 +114,9 @@ function Mega({ stats }: { stats: NonNullStats["SkyWars"] }) {
)
}
function MegaDoubles({ stats }: { stats: NonNullStats["SkyWars"] }) {
const modeStats = getSkywarsModeStats("mega_doubles", stats as _SkywarsStats)
const isBest = getBestSkywarsMode(stats as _SkywarsStats) === "mega_doubles"
function MegaDoubles({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const modeStats = getSkywarsModeStats("mega_doubles", stats)
const isBest = getBestSkywarsMode(stats) === "mega_doubles"
return (
<TableRow className={cn(isBest ? "font-bold text-mc-light-purple" : undefined)}>
@@ -128,9 +128,9 @@ function MegaDoubles({ stats }: { stats: NonNullStats["SkyWars"] }) {
)
}
function Ranked({ stats }: { stats: NonNullStats["SkyWars"] }) {
const modeStats = getSkywarsModeStats("ranked", stats as _SkywarsStats)
const isBest = getBestSkywarsMode(stats as _SkywarsStats) === "ranked"
function Ranked({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const modeStats = getSkywarsModeStats("ranked", stats)
const isBest = getBestSkywarsMode(stats) === "ranked"
return (
<TableRow className={cn(isBest ? "font-bold text-mc-light-purple" : undefined)}>
@@ -142,14 +142,14 @@ 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)
function OverallModeStats({ stats }: { stats: NonNullable<NonNullStats["SkyWars"]> }) {
const normal = getSkywarsModeStats("normal", stats, true)
const insane = getSkywarsModeStats("insane", stats, true)
const teams_normal = getSkywarsModeStats("teams_normal", stats, true)
const teams_insane = getSkywarsModeStats("teams_insane", stats, true)
const mega = getSkywarsModeStats("mega", stats, true)
const mega_doubles = getSkywarsModeStats("mega_doubles", stats, true)
const ranked = getSkywarsModeStats("ranked", stats, true)
const combinedStats = concatSkywarsStats(normal, insane, teams_normal, teams_insane, mega, mega_doubles, ranked)