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

262
Vistas
No sé cómo hacer que los comandos de barra funcionen para mi comando de dados

Estoy tratando de hacer un comando de barra de dados con un controlador de comandos que publica una imagen de los dados, pero dice url1 undefined . Cuando intento simplemente publicar las imágenes directamente, dice que la interacción falló: esta interacción ya ha sido reconocida .

 module.exports= { name: "diceslash", description:"dice slashcommand", execute(interaction){ const diceroll = Math.floor(Math.random() * 6) + 1 const dices = Math.floor(Math.random() * 6) + 1 const ans = diceroll + dices; if (diceroll == 1){ const url1 = 'https://imgur.com/a/YdAmiRe'; } if (diceroll == 2){ const url1 = 'https://imgur.com/a/w35gKMR'; } if (diceroll == 3){ const url1 = 'https://imgur.com/a/MkDVhQS'; } if (diceroll == 4){ const url1 = 'https://imgur.com/a/WCuaCbL'; } if (diceroll == 5){ const url1 = 'https://imgur.com/a/0xyPIkx'; } if (diceroll == 6){ const url1 = 'https://imgur.com/a/urv1H42'; } if (dices == 1){ const url2 = 'https://imgur.com/a/YdAmiRe'; } if (dices == 2){ const url2 = 'https://imgur.com/a/w35gKMR'; } if (dices == 3){ const url2 = 'https://imgur.com/a/MkDVhQS'; } if (dices == 4){ const url2 = 'https://imgur.com/a/WCuaCbL'; } if (dices == 5){ const url2 = 'https://imgur.com/a/0xyPIkx'; } if (dices == 6){ const url2 = 'https://imgur.com/a/urv1H42'; } interaction.reply ({content: url1+" "+url2}) interaction.reply({content: "you got "+ ans}) } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

const tiene un alcance de bloque, por lo que url1 y url2 solo están disponibles dentro de las declaraciones if. Fuera de esos bloques, estas variables no están undefined .

Sin embargo, probablemente no debería usar tantas declaraciones if. Simplemente almacene las imágenes en una matriz o un mapa y elija una de ellas como esta:

 module.exports = { name: 'diceslash', description: 'dice slashcommand', execute(interaction) { const dices = [ 'https://imgur.com/a/YdAmiRe', 'https://imgur.com/a/w35gKMR', 'https://imgur.com/a/MkDVhQS', 'https://imgur.com/a/WCuaCbL', 'https://imgur.com/a/0xyPIkx', 'https://imgur.com/a/urv1H42', ]; const dice1 = Math.floor(Math.random() * 6) + 1; const dice2 = Math.floor(Math.random() * 6) + 1; const ans = dice1 + dice2; // array's index starts at zero const url1 = dices[dice1 - 1]; const url2 = dices[dice2 - 1]; interaction.reply({ content: `${url1} ${url2} \n you got ${ans}` }); }, };

También podría almacenar los dados en un objeto con sus URL y valores y simplificarlo así:

 module.exports = { name: 'diceslash', description: 'dice slashcommand', execute(interaction) { const dices = [ { url: 'https://imgur.com/a/YdAmiRe', value: 1 }, { url: 'https://imgur.com/a/w35gKMR', value: 2 }, { url: 'https://imgur.com/a/MkDVhQS', value: 3 }, { url: 'https://imgur.com/a/WCuaCbL', value: 4 }, { url: 'https://imgur.com/a/0xyPIkx', value: 5 }, { url: 'https://imgur.com/a/urv1H42', value: 6 }, ]; // helper function to pick a random item from an array const pick = (arr) => arr[Math.floor(Math.random() * arr.length)]; const dice1 = pick(dices); const dice2 = pick(dices); const ans = dice1.value + dice2.value; interaction.reply({ content: `${dice1.url} ${dice2.url}` }); interaction.followUp({ content: `you got ${ans}` }); }, };

En cuanto a la segunda parte de su pregunta; el error se produce porque intenta responder a una interacción dos veces. Una interacción solo se puede responder una vez. Puede enviar una sola respuesta (ver mi primer fragmento) o usar el método followUp() para el segundo mensaje (ver el segundo fragmento).

about 4 years ago · Juan Pablo Isaza 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