import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"
import { formatNumber } from "@/lib/formatters"
import { _BedwarsStats, getBedwarsModeStats } from "@/lib/hypixel/bedwars"
import { Player } from "@/lib/schema/player"
export default function BedwarsStatTable({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
return (
)
}
function BedwarsTableHeader() {
const headerElements = [
"Mode",
"Kills",
"Deaths",
"KD",
"Kills",
"Deaths",
"KD",
"Wins",
"Losses",
"WL",
"WS",
"BB",
"BL",
"BBL"
]
return (
Normal
Finals
{headerElements.map((v, i) => {
return {v}
})}
)
}
function SoloStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("solo", stats as _BedwarsStats)
if (!modeStats) return null
return (
Solo
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function DoublesStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("doubles", stats as _BedwarsStats)
if (!modeStats) return null
return (
Doubles
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function ThreesStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("3s", stats as _BedwarsStats)
if (!modeStats) return null
return (
3v3v3v3
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function FoursStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function CoreModeStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const soloStats = getBedwarsModeStats("solo", stats as _BedwarsStats, true)
const doublesStats = getBedwarsModeStats("doubles", stats as _BedwarsStats, true)
const threesStats = getBedwarsModeStats("3s", stats as _BedwarsStats, true)
const foursStats = getBedwarsModeStats("4s", stats as _BedwarsStats, true)
const fraction = [2, 5, 8]
const combinedStats = soloStats.map((v, i) => {
if (v < 0) return "?"
if (fraction.includes(i) || i === soloStats.length - 1) {
return ((v + doublesStats[i] + threesStats[i] + foursStats[i]) / 4).toFixed(2)
}
return v + doublesStats[i] + threesStats[i] + foursStats[i]
})
return (
Core Modes
{combinedStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function FourVFourStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("4v4", stats as _BedwarsStats)
if (!modeStats) return null
return (
4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function RushDoublesStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("rush_2s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Rush Doubles
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function Rush4sStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("rush_4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Rush 4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function UltimateDoublesStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("ultimate_2s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Ultimate Doubles
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function Ultimate4sStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("ultimate_4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Ultimate 4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function LuckyDoublesStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("lucky_2s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Lucky Doubles
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function Lucky4sStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("lucky_4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Lucky 4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function VoidlessDoublesStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("voidless_2s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Voidless Doubles
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function Voidless4sStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("voidless_4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Voidless 4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function ArmedDoublesStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("armed_2s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Armed Doubles
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function Armed4sStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("armed_4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Armed 4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function Swap4sStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("swap_4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Swap 4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function Underworld4sStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("underworld_4s", stats as _BedwarsStats)
if (!modeStats) return null
return (
Underworld 4v4v4v4
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}
function CastleStats({ stats }: { stats: Player["player"]["stats"]["Bedwars"] }) {
const modeStats = getBedwarsModeStats("castle", stats as _BedwarsStats)
if (!modeStats) return null
return (
Castle
{modeStats.map((v, i) => {
return {typeof v === "number" ? formatNumber(v) : v}
})}
)
}