import { Card, CardContent } from "@/components/ui/card" import { Separator } from "@/components/ui/separator" import { getColor } from "@/lib/colors" import { formatDate, formatNumber } from "@/lib/formatters" import { getCoinMultiplier, getTotalChallenges, getTotalCoins, getTotalQuests, rewardClaimed } from "@/lib/hypixel/general/stats" import { getGuildMember, getGuildRankTag, getMemberGEXP, getMemberWeeklyGEXP } from "@/lib/hypixel/guild/guild" import { Guild } from "@/lib/schema/guild" import { Player } from "@/lib/schema/player" import Link from "next/link" import SocialIcons from "./SocialIcons" type SidebarProps = { level: number ign: string player: Player["player"] guild: Guild["guild"] | undefined rank: string | undefined specialRank: string | undefined eulaCoins: boolean | undefined } export default function Sidebar({ level, ign, player, guild, rank, specialRank, eulaCoins }: SidebarProps) { const levelMultiplier = getCoinMultiplier(level, rank, specialRank, eulaCoins) const levelMultiplierVal = levelMultiplier.value const levelMultiplierText = levelMultiplier.level === true ? `(Level ${level.toFixed(1).split(".")[0]})` : `(${levelMultiplier.name})` function General() { return (

Hypixel level

{level.toFixed(2)}

Karma

{formatNumber(player.karma)}

) } function Coins() { return (

{"Coin multiplier: "} {`x${levelMultiplierVal} ${levelMultiplierText}`}

{"Total coins: "} {formatNumber(getTotalCoins(player.stats as Record>))}

) } function Other() { return (

Achievement Points {": "} {formatNumber(player.achievementPoints ?? 0)}

Quests Completed {": "} {formatNumber(getTotalQuests(player.quests))}

{"Challenges Completed: "} {formatNumber(getTotalChallenges(player.challenges))}

) } function DailyRewards() { return (

{"Today's Reward: "} {rewardClaimed(player.lastClaimedReward) ? "Claimed" : "Unclaimed"}

{"Rewards Claimed: "} {player.totalRewards}

{"Reward Streak: "} {player.rewardStreak}

{"Top Reward Streak: "} {player.rewardHighScore}

) } function Gifting() { return (

{"Gifts Given: "} {player.giftingMeta?.giftsGiven ?? 0}

{"Ranks Given: "} {player.giftingMeta?.ranksGiven ?? 0}

) } function Logins() { return (

{"First Login: "} {formatDate(player.firstLogin ?? 0)}

{"Last Login: "} {formatDate(player.lastLogin ?? 0)}

) } function SoicalLinks() { return (

Social Links

) } return ( {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)}

)}
) }