/* eslint-disable @next/next/no-img-element */ import { Card } from "@/app/components/card"; import { CodeDialog } from "@/app/components/code-dialog"; import { CopyButton } from "@/app/components/copy-button"; import { ErrorCard } from "@/app/components/error-card"; import { LookupPlayer } from "@/app/components/player/lookup-player"; import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from "@/app/components/ui/context-menu"; import { Separator } from "@/app/components/ui/separator"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/app/components/ui/tooltip"; import { generateEmbed } from "@/common/embed"; import { CachedPlayer, McUtilsAPIError, SkinPart, getPlayer } from "mcutils-library"; import { Metadata } from "next"; import Image from "next/image"; import Link from "next/link"; import { ReactElement } from "react"; import config from "../../../../../config.json"; type Params = { params: { id: string; }; }; export async function generateMetadata({ params: { id } }: Params): Promise { try { // No id provided if (!id || id.length === 0) { return generateEmbed({ title: "Player Lookup", description: "Click to lookup a player.", }); } const player = await getPlayer(id); const { username, uniqueId, skin } = player; const headPartUrl = skin.parts.head; const description = `UUID: ${uniqueId}\n\nClick to view more information about the player.`; return generateEmbed({ title: `${username}`, description: description, image: headPartUrl, }); } catch (err) { // An error occurred return generateEmbed({ title: "Player Not Found", description: (err as McUtilsAPIError).message, }); } } export default async function Page({ params: { id } }: Params): Promise { let error: string | undefined = undefined; // The error to display let player: CachedPlayer | undefined = undefined; // The player to display // Try and get the player to display try { player = id ? await getPlayer(id) : undefined; } catch (err) { error = (err as McUtilsAPIError).message; // Set the error message } return (

Lookup a Player

You can enter a players uuid or username to get information about the player.

{error && } {player != undefined && (
The player's skin

{player.username}

{player.uniqueId}

Skin Parts

{Object.entries(player.skin.parts) .filter(([part]) => part !== SkinPart.HEAD) // Don't show the head part again .map(([part, url]) => { return ( {`The

Click to view {player.username}'s {part}

); })}
Copy Player Username Copy Player UUID Copy Share URL
)}
); }