- Node.js v24.0.0
- Um bot cadastrado no Discord Developer Portal
- Um servidor (Guild) para testes
Crie um arquivo .env na raiz do projeto com o seguinte conteúdo:
DISCORD_TOKEN= o token do seu bot
DISCORD_CLIENT_ID= id do bot no discord
DISCORD_GUILD_ID= id do servidor do discordA chave DISCORD_TOKEN é obtida no Discord Developer Portal.
Os IDS basta entrar no discord e clicar com o botão direito no bot e no servidor, todos são a ultima opção.
Instale as dependências:
pnpm installAgora leia atentamente o DATABASE.md para entender a configuracao local do banco de dados
E rode no seu PC :
pnpm run start:devCompile para produção:
pnpm run buildRode a versão compilada:
pnpm run startTodos os comandos estão dentro de src/commands/. Cada arquivo deve exportar:
export default {
data: new SlashCommandBuilder() // define nome, descrição e opções
execute(interaction) // lógica ao ser chamado, o que ele vai fazer
}O carregamento e registro é feito automaticamente ao subir o bot e TODOS os .ts seguem um padrão:
nomeDoComando.tse TODOS devem ficar dentro da pasta src/commands/
As mensagens embed são geradas com um helper reutilizável:
createEmbed({
title: "Título",
description: "Texto formatado",
color: BotColors.success,
image: attach.gifs.ping,
timestamp: true
});Você pode importar o createEmbed e BotColors de:
import { createEmbed, BotColors } from "./utils/embeds/embedMessages";O arquivo attach.json contém links prontos para GIFs usados em comandos e mensagens:
{
"gifs": {
"ping": "https://i.ibb.co/ ... .gif",
"love": "https://i.ibb.co/ ... .gif"
},
"img": {
"hello": "https://i.ibb.co/....",
}
}Use assim:
import attach from "../../attach.json";
attach.gifs.ping; // "https://i.ibb.co/ ... .gif"Todos eles são mantidos por imgbb
Para adicionar novos, faça o seguinte:
- Crie sua conta no site
- Realize seu upload
- Se atente para deixar SEM tempo de expiração e público
- busque pelo LINK NATIVO e não qualquer outro, o formato dele basicamente segue os outros que já estão no
attach.json("https://i.ibb.co/StringAleatoria/arquivo.***") - daí basta adicionar no
attach.jsone usar no projeto