diff --git a/apps/bot/src/services/cmd/registry/stats.ts b/apps/bot/src/services/cmd/registry/stats.ts index 645c8f2..8b3291d 100644 --- a/apps/bot/src/services/cmd/registry/stats.ts +++ b/apps/bot/src/services/cmd/registry/stats.ts @@ -1,13 +1,41 @@ -import type { Message } from "discord.js"; +import { EmbedBuilder, type Message } from "discord.js"; import type { Command } from "../service"; import { api } from "../../../util"; +const ATTRIBUTE_EMOJI: Record = { + Strength: "💪", + Power: "⚡", + Endurance: "🏃", + Agility: "🤸", +}; + export default { name: "stats", description: "View your fitness statistics!", execute: async (message: Message) => { const res = await api.accounts({ id: `@${message.author.id}` }).stats.get(); - const stats = res.data; - console.log(stats); + if (!res.data) { + await message.reply("No stats found yet — submit an assessment first!"); + return; + } + + const { player, attributes } = res.data; + + const embed = new EmbedBuilder() + .setColor(0xE74C3C) + .setTitle(`${message.author.username}'s Stats`) + .setThumbnail(message.author.displayAvatarURL()) + .setDescription(`**Overall Level: ${player}**`) + .addFields( + Object.entries(attributes).map(([attribute, level]) => ({ + name: `${ATTRIBUTE_EMOJI[attribute] ?? ""} ${attribute}`, + value: `Level ${level}`, + inline: true, + })) + ) + .setFooter({ text: "Blade & Brawn" }) + .setTimestamp(); + + await message.reply({ embeds: [embed] }); } } as Command;