Estoy tratando de construir un juego RPS en mi bot de Discord. Quiero agregar la funcionalidad de que si la palabra que elige no existe en la list , devolverá un mensaje. Este es mi código hasta ahora:
async execute(message, args, cmd, client, Discord, profileData) { if (!args.length) return message.channel.send('To keep it fair, also send your pick!'); //If you don't //send a second //argument. const list = ['rock', 'paper', 'scissor']; // What the bot accepts. const rps = ['Rock! - ⛰', 'Paper! - 📄', 'Scissor! - ✂']; // Where the bot can // randomly pick from const random = rps[Math.floor(Math.random() * rps.length)]; for (var i = 0; i < list.length; i++) { if (message.content.includes(list[i])) { // If it does exits, // just execute the // command. message.channel.send(random); break; } else { message.channel.send(`\`${args}\` is not a valid option.`); //Return if the //argument you are //sending does not exist //in the list. break; } } }, Pensé que esto funcionaría, y ya hice muchas otras variantes de este. Pero aún así, aunque, por ejemplo, el paper está en la list , todavía me envía "... no es una opción válida". Solo funciona con rock . Entonces, lo que quiero aquí es que si envía algo que no sean los valores dentro de la matriz, regrese.
Para ser breve, tengo dos preguntas:
Rock ), ¿funcionará si envío rock ?Aquí está el enlace a mi problema: https://imgur.com/rhESIZM
No tienes que usar un bucle for . En lugar de verificar todo el message nuevamente, solo necesita verificar el primer argumento ( args[0] ). Simplemente puede usar Array#includes y, para que no distinga entre mayúsculas y minúsculas, convierta este argumento a minúsculas. Su list ya incluye solo letras minúsculas, por lo que lo siguiente funcionará:
async execute(message, args, cmd, client, Discord, profileData) { if (!args.length) return message.channel.send('To keep it fair, also send your pick!'); const list = ['rock', 'paper', 'scissors']; const rps = ['Rock! - ⛰', 'Paper! - 📄', 'Scissors! - ✂']; const random = rps[Math.floor(Math.random() * rps.length)]; if (!list.includes(args[0].toLowerCase())) { return message.channel.send(`\`${args[0]}\` is not a valid option.`); } // args[0] is valid message.channel.send(random); },