机器人只提及

时间:2020-05-28 07:33:22

标签: javascript node.js discord discord.js

我在下面提供的代码可以100%正常工作。但是,如果在提及前后有消息,它仍会发送消息。我不太确定该漫游器将如何忽略它。这个请求可能太多了,但是如果您能解决代码,我将不胜感激。

   client.on('message', async message => {
      let a = await db.fetch(`prefix_${message.guild.id}`)
      if (message.author.bot) return;
      if (!message.guild) return;

      if(message.content.match(`${client.user.id}`))
         message.channel.send(`My prefix is this server is: \`${a}\``);
    });

1 个答案:

答案 0 :(得分:0)

这是因为您要告诉机器人如果消息包含它的提及(或ID),则该机器人要发送前缀,而您真正想要的是看看它是否以< / strong>并提及。
为此,您可以使用.startsWith()对其进行检查,然后建立一个提及,这样它就可以像您的前缀一样工作;更简单的方法是查看邮件的第一个“单词” 是否包含您的ID。
您还想确保第一个“单词”实际上是唯一一个。

if (message.content.split(' ')[0].includes(client.user.id) && message.content.split(' ').length == 1) {
  // The message was "@YourBot", you can do your stuff
}