diff --git a/src/app/(stats)/player/[ign]/_components/Sidebar.tsx b/src/app/(stats)/player/[ign]/_components/Sidebar.tsx index 1c955b7..588db6f 100644 --- a/src/app/(stats)/player/[ign]/_components/Sidebar.tsx +++ b/src/app/(stats)/player/[ign]/_components/Sidebar.tsx @@ -23,14 +23,14 @@ export default function Sidebar({ level, ign, player, guild, rank, specialRank, const levelMultiplier = getCoinMultiplier(level, rank, specialRank, eulaCoins) const levelMultiplierVal = levelMultiplier.value - const levelMultiplierText = levelMultiplier.level === true ? `(Level ${level.toFixed(1).split(".")[0]})` : `(${levelMultiplier.name})` + const levelMultiplierText = levelMultiplier.level === true ? `(Level ${level.toString().split(".")[0]})` : `(${levelMultiplier.name})` function General() { return (

Hypixel level

-

{level.toFixed(2)}

+

{formatNumber(level)}

Karma

@@ -143,6 +143,52 @@ export default function Sidebar({ level, ign, player, guild, rank, specialRank, ) } + function GuildInfo() { + if (!guild) return null + + return ( + <> +
+
+ +

Guild

+ +

+ {"Name: "} + {guild.name} +

+

+ {"Members: "} + {guild.members.length} +

+
+
+

+ {"Rank: "} + {`${getGuildMember(guild, player.uuid)?.rank} `} + + {getGuildRankTag(guild, player.uuid)} + +

+

+ {"Daily GEXP: "} + {formatNumber(getMemberGEXP(guild, player.uuid, 0) ?? 0)} +

+

+ {"Weekly GEXP: "} + {formatNumber(getMemberWeeklyGEXP(guild, player.uuid) ?? 0)} +

+

+ {"Joined: "} + {formatDate(getGuildMember(guild, player.uuid)?.joined ?? 0)} +

+
+
+ + + ) + } + function SoicalLinks() { return (
@@ -175,47 +221,7 @@ export default function Sidebar({ level, ign, player, guild, rank, specialRank, - {guild && ( - <> -
-
- -

Guild

- -

- {"Name: "} - {guild.name} -

-

- {"Members: "} - {guild.members.length} -

-
-
-

- {"Rank: "} - {`${getGuildMember(guild, player.uuid)?.rank} `} - - {getGuildRankTag(guild, player.uuid)} - -

-

- {"Daily GEXP: "} - {formatNumber(getMemberGEXP(guild, player.uuid, 0) ?? 0)} -

-

- {"Weekly GEXP: "} - {formatNumber(getMemberWeeklyGEXP(guild, player.uuid) ?? 0)} -

-

- {"Joined: "} - {formatDate(getGuildMember(guild, player.uuid)?.joined ?? 0)} -

-
-
- - - )} + diff --git a/src/app/(stats)/player/[ign]/_stats/bedwars/bedwars.tsx b/src/app/(stats)/player/[ign]/_stats/bedwars/bedwars.tsx index 073e21a..9991f67 100644 --- a/src/app/(stats)/player/[ign]/_stats/bedwars/bedwars.tsx +++ b/src/app/(stats)/player/[ign]/_stats/bedwars/bedwars.tsx @@ -3,6 +3,7 @@ import { AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion" import { Card, CardContent } from "@/components/ui/card" import { Separator } from "@/components/ui/separator" +import { formatNumber } from "@/lib/formatters" import { getBWLevelForExp, getTotalExpForLevel } from "@/lib/hypixel/bedwars/level" import { getProgress } from "@/lib/hypixel/general" import { NonNullStats } from "@/lib/schema/player" @@ -14,10 +15,10 @@ import BedwarsStatTable from "./table" export default function BedwarsStats({ stats }: { stats: NonNullStats["Bedwars"] }) { if (!stats) return null - const kd = (stats.kills_bedwars / stats.deaths_bedwars).toFixed(2) - const fkd = (stats.final_kills_bedwars / stats.final_deaths_bedwars).toFixed(2) - const wl = (stats.wins_bedwars / stats.losses_bedwars).toFixed(2) - const bbl = (stats.beds_broken_bedwars / stats.beds_lost_bedwars).toFixed(2) + const kd = formatNumber(stats.kills_bedwars / stats.deaths_bedwars) + const fkd = formatNumber(stats.final_kills_bedwars / stats.final_deaths_bedwars) + const wl = formatNumber(stats.wins_bedwars / stats.losses_bedwars) + const bbl = formatNumber(stats.beds_broken_bedwars / stats.beds_lost_bedwars) const level = getBWLevelForExp(stats.Experience) const current = getTotalExpForLevel(level) diff --git a/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx b/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx index 0ef642f..ad10c36 100644 --- a/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx +++ b/src/app/(stats)/player/[ign]/_stats/skywars/skywars.tsx @@ -18,8 +18,8 @@ export default function SkyWarsStats( if (!stats) return null const level = getSkywarsLevel(stats.skywars_experience) - const kd = (stats.kills / stats.deaths).toFixed(2) - const wl = (stats.wins / stats.losses).toFixed(2) + const kd = formatNumber(stats.kills / stats.deaths) + const wl = formatNumber(stats.wins / stats.losses) const current = getSkywarsXpForLevel(Math.floor(level)) const next = getSkywarsXpForLevel(Math.floor(level + 1)) diff --git a/src/app/(stats)/player/[ign]/_stats/skywars/stats.tsx b/src/app/(stats)/player/[ign]/_stats/skywars/stats.tsx index 4c98149..5ed5d27 100644 --- a/src/app/(stats)/player/[ign]/_stats/skywars/stats.tsx +++ b/src/app/(stats)/player/[ign]/_stats/skywars/stats.tsx @@ -23,7 +23,7 @@ export default function SkyWarsGeneralStats({ return (
- + @@ -40,13 +40,13 @@ export default function SkyWarsGeneralStats({ - +
- +


@@ -64,8 +64,8 @@ export default function SkyWarsGeneralStats({ - - + +


diff --git a/src/lib/formatters.ts b/src/lib/formatters.ts index b8ef2ab..f444b87 100644 --- a/src/lib/formatters.ts +++ b/src/lib/formatters.ts @@ -1,14 +1,15 @@ -const numberFormatter = new Intl.NumberFormat(undefined, { +const numberFormatter = new Intl.NumberFormat("en-GB", { maximumFractionDigits: 2, minimumFractionDigits: 0 }) -const dateFormatter = new Intl.DateTimeFormat(undefined, { +const dateFormatter = new Intl.DateTimeFormat("en-GB", { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", + second: "2-digit", hour12: false }) diff --git a/src/lib/hypixel/bedwars/bedwars.ts b/src/lib/hypixel/bedwars/bedwars.ts index fb91319..8fcd650 100644 --- a/src/lib/hypixel/bedwars/bedwars.ts +++ b/src/lib/hypixel/bedwars/bedwars.ts @@ -1,5 +1,6 @@ import { PRESTIGE_ICONS, PRESTIGES, SLUMBER_ROOMS, SLUMBER_WALLETS } from "@/data/hypixel/bedwars" import { getColorFromCode } from "@/lib/colors" +import { formatNumber } from "@/lib/formatters" import { concatStatsArray, devide, floorLevel } from "../general" export function getBedwarsStar(level: number) { @@ -245,16 +246,16 @@ function bedwarsModeStats(prefix: string, stats: _BedwarsStats, raw = false) { return [ stats[`${prefix}_kills_bedwars`], stats[`${prefix}_deaths_bedwars`], - devide(stats[`${prefix}_kills_bedwars`], stats[`${prefix}_deaths_bedwars`]).toFixed(2), + formatNumber(devide(stats[`${prefix}_kills_bedwars`], stats[`${prefix}_deaths_bedwars`])), stats[`${prefix}_final_kills_bedwars`], stats[`${prefix}_final_deaths_bedwars`], - devide(stats[`${prefix}_final_kills_bedwars`], stats[`${prefix}_final_deaths_bedwars`]).toFixed(2), + formatNumber(devide(stats[`${prefix}_final_kills_bedwars`], stats[`${prefix}_final_deaths_bedwars`])), stats[`${prefix}_wins_bedwars`], stats[`${prefix}_losses_bedwars`], - devide(stats[`${prefix}_wins_bedwars`], stats[`${prefix}_losses_bedwars`]).toFixed(2), + formatNumber(devide(stats[`${prefix}_wins_bedwars`], stats[`${prefix}_losses_bedwars`])), stats[`${prefix}_winstreak`] ?? "?", stats[`${prefix}_beds_broken_bedwars`], stats[`${prefix}_beds_lost_bedwars`], - devide(stats[`${prefix}_beds_broken_bedwars`], stats[`${prefix}_beds_lost_bedwars`]).toFixed(2) + formatNumber(devide(stats[`${prefix}_beds_broken_bedwars`], stats[`${prefix}_beds_lost_bedwars`])) ] } diff --git a/src/lib/hypixel/skywars/skywars.ts b/src/lib/hypixel/skywars/skywars.ts index a9086f5..12a7c18 100644 --- a/src/lib/hypixel/skywars/skywars.ts +++ b/src/lib/hypixel/skywars/skywars.ts @@ -1,4 +1,5 @@ import { HEADS, ICONS, PRESTIGES } from "@/data/hypixel/skywars" +import { formatNumber } from "@/lib/formatters" import { concatStatsArray, devide, floorLevel } from "../general" export function getHeads(key: string) { @@ -151,9 +152,9 @@ function skywarsModeStats(suffix: string, stats: _SkywarsStats, raw = false) { return [ stats[`kills_${suffix}`], stats[`deaths_${suffix}`], - devide(stats[`kills_${suffix}`], stats[`deaths_${suffix}`]).toFixed(2), + formatNumber(devide(stats[`kills_${suffix}`], stats[`deaths_${suffix}`])), stats[`wins_${suffix}`], stats[`losses_${suffix}`], - devide(stats[`wins_${suffix}`], stats[`losses_${suffix}`]).toFixed(2) + formatNumber(devide(stats[`wins_${suffix}`], stats[`losses_${suffix}`])) ] }