Mi bot no lee el chat de Discord. Quiero que lea el chat y si encuentra ciertas palabras dará una respuesta determinada. Este es mi código de evento de mensaje actual. Este es mi primer proyecto de JavaScript y acabo de empezar a aprenderlo, así que desmenúzalo para que pueda aprender más rápido :)
Por el momento puedo hacer que el bot se cargue en discord. Puedo encenderlo con .node pero no puedo hacer que lea un mensaje usando message.content.
const Discord = require("discord.js"); const client = new Discord.Client({ intents: ["GUILD_MESSAGES", "DIRECT_MESSAGES"] }); var name = "Poker Bot"; var usersHand let firstCardValue let secondCardValue let firstCardSuit let secondCardSuit //starts the bot and sets activity to a funny quote. it also will give a command prompt notification that the // bot is online client.on("ready", () => { console.log(`Bot is online: ${name} !`); client.user.setActivity('Burning The Fucking Casino Down'); }); //check discord chat to see if a user has posted. client.on("messageCreate", message => { //console.log is there to test user input. If it works the message in the discord channel will appear in console console.log(`The user has said: ${message} `); //look for poker hand ~~~ position ~~~~ event (ex: AA CO PF ) (PF= PreFlop) if (message.content.toLowerCase == 'AK' || message.content.toLowerCase == 'AA' || message.content.toLowerCase == 'KK'){ message.reply("RECOMMENDED PLAY SHOVE: ALL IN") }.content no es un método, es una propiedad, ahora también debe habilitar la intención de Message Content en su página de bot, así como en su código.
const Discord = require("discord.js"); const client = new Discord.Client({ intents: ["GUILD_MESSAGES", "DIRECT_MESSAGES"] }); client.on("messageCreate", message => { // || "String" like you did before would return "true" in every single instance, // this is case sensitive, if you wanna make it case insensitive // use `message.content.toLowerCase() == "lowercasestring"` if (message.content == "AK" || message.content = "AA" || message.content == "KK") { message.channel.send("Recommend Play is to shove all in" + message.author); } }) client.login(token);A juzgar por su información, no solo desea enviar una respuesta si el mensaje contiene solo esas cadenas, sino que puede contenerlas. Para verificar eso, sugeriría usar regex#test
Aún así, como @iiRealistic_Dev mencionó correctamente: message.content no es una función, por lo que eliminar los corchetes es el camino a seguir.
client.on("messageCreate", (message) => { if (/AK|AA|KK/.test(message.content)) { message.channel.send("Recommend Play is to shove all in" + message.author); console.log('it got to here'); } });