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)}
{"Coin multiplier: "} {`x${levelMultiplierVal} ${levelMultiplierText}`}
{"Total coins: "}
{formatNumber(getTotalCoins(player.stats as Record
Achievement Points {": "} {formatNumber(player.achievementPoints ?? 0)}
Quests Completed {": "} {formatNumber(getTotalQuests(player.quests))}
{"Challenges Completed: "} {formatNumber(getTotalChallenges(player.challenges))}
{"Today's Reward: "} {rewardClaimed(player.lastClaimedReward) ? "Claimed" : "Unclaimed"}
{"Rewards Claimed: "} {player.totalRewards}
{"Reward Streak: "} {player.rewardStreak}
{"Top Reward Streak: "} {player.rewardHighScore}
{"Gifts Given: "} {player.giftingMeta?.giftsGiven ?? 0}
{"Ranks Given: "} {player.giftingMeta?.ranksGiven ?? 0}
{"First Login: "} {formatDate(player.firstLogin ?? 0)}
{"Last Login: "} {formatDate(player.lastLogin ?? 0)}
{"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)}