/* eslint-disable @next/next/no-img-element */ import { Card } from "@/app/components/card"; import { ErrorCard } from "@/app/components/error-card"; import { LookupPlayer } from "@/app/components/player/lookup-player"; 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"; type Params = { params: { id: string; }; }; export async function generateMetadata({ params: { id } }: Params): Promise { try { const player = await getPlayer(id); const { username, uniqueId, skin } = player; const headPartUrl = skin.parts.head; const description = ` Username: ${username} UUID: ${uniqueId}`; return generateEmbed({ title: `${username}`, description: description, image: headPartUrl, }); } catch (err) { 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 ); })}
)}
); }