Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

313
Visualizações
Discord.js On message command not working

Discord.js Problem I should point out I am not experienced at discord.js. I have the following code which is supposed to change the users requested sum or expression into the actual answer and message back. My other command is working but not the other here is the code for that:

client.once("message", msg => {
    if(msg.content.includes("!simple")){
       math = Number(msg.content.slice(msg.content.search("e")))
msg.reply(guild.username + "The answer is " + math )


    }
})

I basically remove the command part via slice method then compute the value of it using the Number function and subsequently return it but I get no response from the bot. Any help appreciated

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

In the mean while Discord changed their APIs. client.on("message") is deprecated now. The working example at 2021 would look like this:

const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });

client.on("messageCreate", (message) => {
  if (message.author.bot) return false; 
  
  console.log(`Message from ${message.author.username}: ${message.content}`);
});

client.login(process.env.BOT_TOKEN);

The boot needs explicit permission to read messages. If the bot doesn't have that permission then the on messageCreate event will not be fired.

over 4 years ago · Santiago Trujillo Relatório

0

i'm not to sure about what you mean with "requested sum or expression", something like this?

client.on('message', msg => {
  if (msg.content.startsWith('!simple')) {
    var tocalc = msg.content.substr(8);
    if (!tocalc.match(/^[\d\(\)\+\-\/\*e\.%=!\s]+$/)) { // allowed = ['number', '(', ')', '+', '-', '*', '/', 'e', '.', '%', '=', '!', ' ']
        msg.reply('no valid expression or calculation');
        return;
    }
    var result;
    try {
        result = Function('return ' + tocalc)();
    } catch(e) {
        console.error(`tried to exploit! ban user ${msg.author.id}!`);
        return;
    }
    if (isNaN(result)) {
        console.error(`tried to exploit! ban user ${msg.author.id}!`);
        return;
    }
    msg.reply(result);
  }
});

!simple 1 + 8 - (4 * .25) // 8
!simple 1 == 1 // true
!simple 9 % 2 != 8 % 2 // true
over 4 years ago · Santiago Trujillo Relatório

0

this is how i would go about it

client.on("message",message=>{

  if(!message.content.startsWith("!simple") return ;//if the message does not start with simple return
  const args=message.content.slice(6).trim().split(/ +/);//splits the command into an array separated by spaces
  const command=args.shift().toLowerCase();//removes the command (!simple in this case)
//now you can acces your arguments args[0]..args[1]..args[n]
  });
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda