Estoy tratando de desarrollar un bot de discordia simple que esté hecho para chatear. Creé una matriz de cadenas que se supone que almacena todas las respuestas que el bot puede dar y luego dejo que el programa dé una respuesta aleatoria basada en esa matriz. Ahora el bot da una respuesta aleatoria, pero solo elige una aleatoria de la matriz y solo la cambia cuando se reinicia. Me preguntaba si hay alguna manera de hacer que el bot elija una respuesta diferente cada vez que dice algo. Aquí está el código actual:
const stringarray = [ 'string1', 'string2', 'string3', ]; let randomNumber = Math.floor(Math.random()*stringarray.length); client.on("message", msg => { if (msg.content === "string0") { msg.reply(stringarray[randomNumber]); } })¡El problema es que está configurando randomNumber en el código principal y no en la devolución de llamada .on('message') ! Por lo tanto, el código se ejecuta cuando inicia el servidor (y, por lo tanto, solo una vez). Debe moverlo dentro de la devolución de llamada para que calcule un nuevo valor aleatorio para cada llamada:
client.on("message", msg => { if (msg.content === "string0") { let randomNumber = Math.floor(Math.random()*stringarray.length); msg.reply(stringarray[randomNumber]); } })