Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

264
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!