Discord Js Bot提及用户ID

时间:2020-10-24 06:04:45

标签: javascript node.js discord discord.js

我正在制造一个机器人,我想补充一点,如果有人在该消息中提到我,那么机器人应该回复一些信息 我尝试了很多事情,但总是失败 就像我尝试过

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");
}

帮帮我 告诉我,如果有人在消息中提到我,那么漫游器应该回复某事

1 个答案:

答案 0 :(得分:2)

message.mentions.members是消息内容中所有提到的成员的集合(映射)。使用message.mentions.members.first()时,您只会得到第一次提及。要检查是否在消息中的任何位置都提到了成员,您需要将整个集合放入这样的变量中:

const mentionedMembersCollection = message.mentions.members;

然后,在if事件内的message条件中使用它来检查是否使用其id提及了特定成员。使用id作为keymember对象作为value映射成员集合(地图)。

bot.on('message', (message) => {
    const mentionedMembersCollection = message.mentions.members;
    if(mentionedMembersCollection.has('your-id') || mentionedMembersCollection.has(bot.user.id)) {
        message.channel.send('nice');
    }
});

如果消息中提到了niceyoubot,则上述代码将在频道中发送both。您可以使用他们的id来检查更多类似的人。