我正在制造一个机器人,我想补充一点,如果有人在该消息中提到我,那么机器人应该回复一些信息 我尝试了很多事情,但总是失败 就像我尝试过
if (message.content.includes("<@737177406376509520>")){
message.channel.send('nice')
}
但是那不起作用,那就是我的用户ID 帮助我判断是否有人在消息中提到我,然后漫游器应该回复
message.mentions.members.first()
这也是我尝试过的,但我认为只会首先提到 所以帮我把它弄出来
如果有人提到了bot,那么我想要类似的东西
if (message.mentions.has(client.user.id)){
message.channel.send("Hello there! I am xD Bot");
}
帮帮我 告诉我,如果有人在消息中提到我,那么漫游器应该回复某事
答案 0 :(得分:2)
message.mentions.members
是消息内容中所有提到的成员的集合(映射)。使用message.mentions.members.first()
时,您只会得到第一次提及。要检查是否在消息中的任何位置都提到了成员,您需要将整个集合放入这样的变量中:
const mentionedMembersCollection = message.mentions.members;
然后,在if
事件内的message
条件中使用它来检查是否使用其id
提及了特定成员。使用id
作为key
和member
对象作为value
映射成员集合(地图)。
bot.on('message', (message) => {
const mentionedMembersCollection = message.mentions.members;
if(mentionedMembersCollection.has('your-id') || mentionedMembersCollection.has(bot.user.id)) {
message.channel.send('nice');
}
});
如果消息中提到了nice
或you
或bot
,则上述代码将在频道中发送both
。您可以使用他们的id
来检查更多类似的人。