首页 > 解决方案 > 如何检测是否提到了机器人?

问题描述

如何检测是否提到了我的机器人?

到目前为止,我尝试了这些:

if (msg.content.toLowerCase().includes('@The Guardian of The Bar#5180')) {
  msg.channel.send("My prefix here is" + prefix + "\n You can start with ``" + prefix + "help``");
}

if (msg.content.toLowerCase().includes('@The Guardian of The Bar')) {
  msg.channel.send("My prefix here is" + prefix + "\n You can start with ``" + prefix + "help``");
}

if (msg.content.includes('@The Guardian of The Bar#5180')) {
  msg.channel.send("My prefix here is" + prefix + "\n You can start with ``" + prefix + "help``");
}

if (msg.content.includes('@The Guardian of The Bar#5180')) {
  msg.channel.send("My prefix here is" + prefix + "\n You can start with ``" + prefix + "help``");
}

标签: javascriptnode.jsdiscord.js

解决方案


我对 discord.js 没有经验,但是根据文档中的this,消息对象有一个方法message.isMemberMentioned(User or GuildMember)。使用这种方法,可以使用

client.on('message', message => { //this event is fired, whenever the bot sees a new message
   if (message.isMemberMentioned(client.user)) { //we check, whether the bot is mentioned, client.user returns the user that the client is logged in as
      //this is where you put what you want to do now
   }
});

我想建议您在尝试制作机器人之前完整阅读文档。

在 v12 discord.js 上,您现在必须使用message.mentions.has(bot.user)


推荐阅读