Quiero usar las opciones de elección en los comandos de barra. Dejame explicar:
/info usuario
El usuario escribe este comando de barra. El "usuario" es la elección en este comando. Si escribimos "usuario" como opción, debería dar una opción de usuario. Me gusta:
/servidor de información
Si escribimos así, simplemente ejecutará el comando, porque el servidor no necesita más información.
/info usuario
Pero si escribimos así, pedirá un usuario. Puede agregar opciones de usuario escribiendo .addUserOption , pero debería agregarlo a la opción, no sé cómo hacerlo. Aquí está mi código:
const { SlashCommandBuilder } = require("@discordjs/builders") module.exports = { data: new SlashCommandBuilder() .setName("info") .setDescription("Get info about X! (usage: /info X)") .addStringOption((o) => o .setName("choice") .setDescription("What info do you want to get?") .setRequired(true) .addChoice('Server', 'server') .addChoice('User', 'user') .addUserOption((o) => o .setName("user") .setDescription("What user do you want to get info about?") .setRequired(true) ) .addChoice('Bot', 'bot') ), async execute(i) { if (i.options.getString("choice") == 'server') { i.reply({ content: `server`, emphemeral: true }) } if (i.options.getString("choice") == 'user') { i.reply({ content: `user`, emphemeral: true }) } if (i.options.getString("choice") == 'bot') { i.reply({ content: `bot`, emphemeral: true }) } } }Eso es lo que intenté. Me da un error. ¿Cómo puedo hacerlo? Gracias.
.addStringOption() tiene sus propias opciones. Después .addStringOption() , elimina la sangría para que esté en la misma línea donde comenzó, luego agrega .addUserOption() con sus propias opciones.
// ... .addStringOption(() => { // ... }) .addChoice("Foo", "foo") .addChoice("Bar", "bar") .addUserOption(() => { // ... }) .addChoice("<@1234567890>") .addChoice("<@1234567890>")