From 2cb9db4264c98f96974b86cd40b35c81868f5dc6 Mon Sep 17 00:00:00 2001 From: Taken Date: Tue, 2 Sep 2025 00:39:48 +0200 Subject: [PATCH] Added table entries --- AGENTS.md | 4 + .../player/[ign]/_stats/duels/table.tsx | 342 ++++++++++++++++++ src/lib/hypixel/duels/duels.ts | 4 +- 3 files changed, 348 insertions(+), 2 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..dbbe013 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,4 @@ +# Don'ts + +1. Do not ever commit code without being asked to + diff --git a/src/app/(stats)/player/[ign]/_stats/duels/table.tsx b/src/app/(stats)/player/[ign]/_stats/duels/table.tsx index 8d5639f..63ecf1c 100644 --- a/src/app/(stats)/player/[ign]/_stats/duels/table.tsx +++ b/src/app/(stats)/player/[ign]/_stats/duels/table.tsx @@ -9,6 +9,25 @@ export default function DuelsStatTable({ stats }: { stats: NonNullStats["Duels"] + + + + + + + + + + + + + + + + + + + ) @@ -58,3 +77,326 @@ function UHC1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { ) } + +function UHC2v2Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("uhc_doubles", stats) + const title = getModeTitle("uhc_doubles") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function UHC4v4Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("uhc_four", stats) + const title = getModeTitle("uhc_four") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function OP1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("op_duel", stats) + const title = getModeTitle("op_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function OP2v2Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("op_doubles", stats) + const title = getModeTitle("op_doubles") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function SkyWars1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("sw_duel", stats) + const title = getModeTitle("sw_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function SkyWars2v2Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("sw_doubles", stats) + const title = getModeTitle("sw_doubles") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function MegaWalls1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("mw_duel", stats) + const title = getModeTitle("mw_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function MegaWalls2v2Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("mw_doubles", stats) + const title = getModeTitle("mw_doubles") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Bow1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("bow_duel", stats) + const title = getModeTitle("bow_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Blitz1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("blitz_duel", stats) + const title = getModeTitle("blitz_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Sumo1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("sumo_duel", stats) + const title = getModeTitle("sumo_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function ParkourFFAStats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("parkour_eight", stats) + const title = getModeTitle("parkour_eight") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Boxing1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("boxing_duel", stats) + const title = getModeTitle("boxing_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Classic1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("classic_duel", stats) + const title = getModeTitle("classic_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Bridge1v1Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("bridge_duel", stats) + const title = getModeTitle("bridge_duel") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Bridge2v2Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("bridge_doubles", stats) + const title = getModeTitle("bridge_doubles") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Bridge4v4Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("bridge_four", stats) + const title = getModeTitle("bridge_four") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Bridge2v2v2v2Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("bridge_2v2v2v2", stats) + const title = getModeTitle("bridge_2v2v2v2") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} + +function Bridge3v3v3v3Stats({ stats }: { stats: NonNullStats["Duels"] }) { + if (!stats) return null + + const modeStats = getDuelsModeStats("bridge_3v3v3v3", stats) + const title = getModeTitle("bridge_3v3v3v3") + + return ( + + {title} + I + {modeStats.map((v, i) => { + return {typeof v === "number" ? formatNumber(v) : v} + })} + + ) +} diff --git a/src/lib/hypixel/duels/duels.ts b/src/lib/hypixel/duels/duels.ts index 2e0c023..80f0102 100644 --- a/src/lib/hypixel/duels/duels.ts +++ b/src/lib/hypixel/duels/duels.ts @@ -80,8 +80,8 @@ function duelsModeStats(index: typeof MODES[number]["id"], stats: NonNullable