Comandos
Comandos são a principal forma de interação com o bot.
🚀 Como funciona
- ⚡ O Nexo carrega automaticamente os comandos ao iniciar o bot.
- 📄 O diretório de comandos é definido por você em
paths.commandsnoBootstrap.init. - 📦 Cada arquivo deve exportar um
default. - 🗂️ O primeiro nível de subpastas é tratado como categoria.
🧪 Exemplo curto
- JavaScript
- TypeScript
const { createCommand, CommandType } = require('nexocord');
module.exports = createCommand({
name: 'ping',
description: 'Responde com pong!',
type: CommandType.ChatInput,
async run(interaction) {
await interaction.reply({ content: 'Pong! 🏓' });
},
});
import { createCommand, CommandType } from 'nexocord';
export default createCommand({
name: 'ping',
description: 'Responde com pong!',
type: CommandType.ChatInput,
async run(interaction) {
await interaction.reply({ content: 'Pong! 🏓' });
},
});
📋 Campos do comando
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome único do comando |
description | string | Sim | Texto mostrado no Discord |
type | CommandType | Sim | Tipo de comando |
run | function | Sim | Função executada |
options | array | Não | Parâmetros do comando |
cooldown | number | Não | Tempo entre usos |
autocomplete | function | Não | Sugestões em tempo real |
defaultMemberPermission | PermissionResolvable | Não | Permissão exigida do usuário |
botpermission | PermissionFlagsBits key | Não | Permissão exigida do bot |
allowIds | string[] | Não | IDs permitidos |
dmPermission | boolean | Não | Permite uso em DM |
nsfw | boolean | Não | Restringe a canal NSFW |
🎯 Tipos de comandos
O Nexo suporta diferentes formas de interação:
- Slash
- User
- Message
type: CommandType.ChatInput
Comandos tradicionais com /.
type: CommandType.User
Menu ao clicar com botão direito em um usuário.
type: CommandType.Message
Menu ao clicar com botão direito em uma mensagem.
Na prática
O tipo mais usado é ChatInput.
🔐 Permissões e controle
Use esses campos para restringir uso:
defaultMemberPermission: permissão do usuáriobotpermission: permissão do botallowIds: libera só para IDs de usuários específicosdmPermission: bloqueia/libera em DMnsfw: exige canal NSFW
Importante
Sempre valide permissões em comandos administrativos.
🤖 Parâmetros (options) e Autocomplete
Options
Define parâmetros do comando.
options: [
{
type: ApplicationCommandOptionType.String,
name: 'message',
description: 'Mensagem',
required: true,
}
]
Autocomplete
Responde sugestões em tempo real:
autocomplete: async (interaction, focused) => {
const choices = ['Opção 1', 'Opção 2'];
await interaction.respond(
choices.map(c => ({ name: c, value: c }))
);
}
🔄 Subcomandos
Subcomandos são automáticos quando você cria uma pasta dentro da categoria.
📁 Estrutura
src/
commands/
admin/
user/
ban.ts
kick.ts
mute.ts
🎯 Resultado
/user ban
/user kick
/user mute
dica
Cada arquivo dentro da pasta vira um subcomando.