Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

162
Vistas
La opción de comandos DiscordJS v14 Slash depende de la opción

Quiero hacer un comando de barra inclinada de Discord donde debe seleccionar una opción y luego otra opción.

Pero dependiendo de qué elección se haga en primer lugar (en la elección 1), las opciones/valores en la elección 2 están cambiando.

¿Es eso posible?

Ejemplo: /command choice1 choice2

Si selecciono "A" en choice1 1, obtengo "Uno" y "Dos" como opciones en la opción. Pero cuando selecciono "B" en choice1 1, obtendré "Tres" y "Cuatro" como choice2 opción 2 .

Saludos,

Pablo

almost 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Las opciones son valores predeterminados, que se establecen cuando se registra el comando y no se pueden cambiar posteriormente.

La forma de cambiar dinámicamente las opciones es a través de "autocompletar" o, según la situación, también podrían funcionar los "subcomandos".

Para configurar el autocompletado para cambiar en función de otros valores, debe acceder a interaction.options.get(choice2) para la opción1 e interaction.options.get(choice1) para la opción2 (la interacción aquí sería una AutocompletarInteracción)

Aquí hay un ejemplo:

 client.on('interactionCreate', async interaction => {
 if (!interaction.isAutocomplete()) return;

 if (interaction.commandName === 'command') {
 const focusedOption = interaction.options.getFocused(true);
 let choices;

 if (focusedOption.name === 'option1') {
 choices = ["A", "B"];
 }

 if (focusedOption.name === 'option2') {
 let option1 = interaction.options.get('option1')?.value;
 if (option1 === "A") {
 choices = ["One", "Two"];
 }
 else if (option1 === "B") {
 choices = ["Three", "Four"];
 }
 else {
 choices = ["One", "Two", "Three", "Four"];
 }
 }

 const filtered = choices.filter(choice => choice.startsWith(focusedOption.value));
 await interaction.respond(
 filtered.map(choice => ({ name: choice, value: choice })),
 );
 }
});

Como con todas las interacciones, debe responder en 3 segundos. Pero no puede diferir AutocompleteInteractions, por lo que recomendaría .catch() ing la respuesta de interacción en caso de errores.

Vea aqui para mas informacion:

[1] https://discordjs.guide/interactions/autocomplete.html

[2] https://discord.js.org/#/docs/main/main/class/AutocompleteInteraction

almost 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda