Exemplos de Uso
Adicionando Opções
O método addOption
aceita três formas diferentes:
- Desestruturação: Passando um objeto completo.
- String: Nome seguido de descrição e outros argumentos.
- Objeto: Configurando propriedades diretamente.
// Exemplo 1: Usando desestruturação
pingCommand.addOption({
name: "message",
description: "Mensagem para responder",
type: 3, // STRING
required: true,
});
// Exemplo 2: Usando strings
pingCommand
.addOption("message",
"Mensagem para responder",
3, true);
// Exemplo 3: Usando objeto diretamente
pingCommand.addOption({
name: "urgent",
description: "Mensagem é urgente?",
type: 5, // BOOLEAN
required: false,
});
Adicionando Subcomandos
Os subcomandos ajudam a organizar funcionalidades específicas dentro de um único comando.
// Exemplo básico de subcomando
const userCommand = new SlashCommand()
.setName("user")
.setDescription("Gerencia informações do usuário")
.addSubCommand("ban", "Banir um usuário")
.addSubCommand({
name: "info",
description: "Exibe informações de um usuário",
options: [
{
name: "target",
description: "Usuário alvo",
type: 6,
required: true
},
],
});
// Subcomando com opções
userCommand.addSubCommand("mute", "Silenciar usuário", [
{
name: "duration",
description: "Duração do mute (em minutos)",
type: 4
},
]);
Versatilidade dos SlashCommands
Os comandos podem ser configurados e executados de várias formas:
- Usando
run
ou execute
diretamente.
- Passando o comando com
data: new SlashCommand()
.
- Configurando com objetos ou métodos da classe.
// Exemplo: Configuração direta com `execute`
const helloCommand = new SlashCommand()
.setName("hello")
.setDescription("Diz olá!")
.setExecute(async (interaction) => {
await interaction.reply("Olá, mundo!");
});
// Exemplo: Usando `data` e execute
const byeCommand = {
data: new SlashCommand()
.setName("bye")
.setDescription("Diz tchau!"),
execute: async (interaction, bot) => {
await interaction.reply("Até logo!");
},
};
// Exemplo: Usando `data` e run
const anotherCommand = {
data: new SlashCommand()
.setName("bye")
.setDescription("Diz tchau!"),
run: async (interaction, bot) => {
await interaction.reply("Até logo!");
},
};
// Exemplo: usando objeto.
module.exports = {
name: "bye",
description: "Diz tchau!",
execute: async(interaction) => {
await interaction.reply("Até jaja!")!
}
}
Autocomplete
Adicione funções de autocomplete para melhorar a experiência do usuário.
// Exemplo de autocomplete com a função.
const searchCommand = new SlashCommand()
.setName("search")
.setDescription("Busca algo")
.addOption("query", "O que buscar", 3, true)
.setAutoComplete(async (interaction) => {
const focusedValue = interaction.options.getFocused();
const suggestions = ["apple", "banana", "cherry"].filter((item) =>
item.startsWith(focusedValue)
);
await interaction.respond(suggestions.map((item) => ({ name: item, value: item })));
});