javascript - Discord Js Bot 提及用户 ID
问题描述
我正在制作一个机器人,我想补充一点,如果有人在那条消息中提到我,那么机器人应该回复一些我尝试过很多事情但总是失败的东西,就像我尝试过的一样
if (message.content.includes("<@737177406376509520>")){
message.channel.send('nice')
}
但这不起作用,那是我的用户 ID 帮助我判断是否有人在消息中提到我,然后机器人应该回复
message.mentions.members.first()
这也是我尝试过的,但我认为它只会首先提到所以帮助我把它拿出来
如果有人提到机器人,我想要类似的东西然后它发送这个
if (message.mentions.has(client.user.id)){
message.channel.send("Hello there! I am xD Bot");
}
帮我告诉如果有人在消息中提到我,那么机器人应该回复一些东西
解决方案
message.mentions.members
是消息内容中所有提到的成员的集合(映射)。当您使用 时message.mentions.members.first()
,您只会得到第一次提及。要检查是否在消息中的哪个位置提到了成员,您需要将整个集合放在一个变量中,如下所示:
const mentionedMembersCollection = message.mentions.members;
然后,在事件if
内部的条件中使用它message
来检查是否提到了特定成员,使用他们的id
. 成员集合(映射)使用id
askey
和member
对象 as进行映射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
推荐阅读
- java - 问题:我的应用在 setLocale "zh_TW" 时使用默认的 strings.xml 而不是 "zh" strings.xml
- python - 让精灵面对鼠标?
- python - 在 django 中自定义 LoginView 时可以获得cleaned_data
- excel - 根据单元格是否包含另一个工作表中单元格的值来过滤表格
- python - 具有混合值的两列的唯一组合
- c++ - 在没有 Visual Studio 的情况下为 C++ 的 OpenGL 设置 GLFW
- apache-spark - 当应用程序在 Spark 独立集群下的 2 个工作人员上时,如果 1 个工作人员出现故障,那么 Spark 集群会将其他工作人员带到集群下吗?
- optimization - z3py:符号表达式不能转换为具体的布尔值
- postgresql - 在 postgresql 9.6 上锁定表
- javascript - 如何在 div 父母中获得最后一个孩子?