Slash commands
Registre comandos / com formulário nativo no composer.
Comandos / aparecem no autocomplete do composer com um formulário nativo para os argumentos. O próprio bot registra os comandos com o seu token.
Registrar comandos
PUT
/api/bot/commandsCorpo
{
"commands": [
{
"name": "sauda",
"description": "Manda uma saudação",
"options": [
{ "name": "quem", "description": "Pra quem saudar", "type": "string", "required": false }
]
}
]
}- Comandos com o mesmo nome mantêm o mesmo
id; os que não estiverem na lista são removidos. - Os comandos valem para todos os servidores onde o bot está instalado — não há comando por servidor.
- Resposta:
{ "commands": [{ id, name, description, options, createdAt }] }.
GET
/api/bot/commandsRegras
| Item | Regra |
|---|---|
| Comandos por aplicação | até 100, nomes únicos |
name | minúsculas, números, - e _; 1–32 caracteres |
description | 1–100 caracteres |
options | até 25 por comando, nomes únicos |
| Tipos de opção | string (cortado em 2000), integer, boolean, user, channel |
[NEX]
Os tipos são strings, não números. Ainda não há subcomandos,
choices, mínimo/máximo, autocomplete nem localização. Opções user e channel chegam como o id digitado/escolhido, sem validação.Quando o comando aparece
Um comando só aparece para alguém num canal quando:
- o bot está instalado no servidor e a aplicação não está suspensa;
- a aplicação tem o intent
interactions.receive; - o bot tem
VER_CANALnaquele canal; - a pessoa tem
ENVIAR_MENSAGENSpara invocar.
Receber e responder
Cada invocação vira uma interação kind: "command", entregue pelo Gateway ou pelo webhook. A resposta usa POST /api/bot/interactions/:id/respond.
Exemplo (Gateway)
socket.on('INTERACTION_CREATE', async (it) => {
if (it.kind !== 'command' || it.command.name !== 'sauda') return;
const quem = it.command.options.quem || 'mundo';
await fetch(`https://nexapp.online/api/bot/interactions/${it.id}/respond`, {
method: 'POST',
headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${TOKEN}` },
body: JSON.stringify({ type: 4, content: `Olá, ${quem}!` }),
});
});Opções no modo webhook
No modo webhook, a interação de comando não traz
command.options — só id e name. Se o seu comando tem argumentos, use o modo Gateway. Detalhes em Interações.