You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断Discord机器人中提及的用户是否为机器人?

解决Discord机器人判断提及用户是否为机器人的问题

Hey there! Let's sort out this issue you're stuck on with checking if a mentioned user is a bot.

问题根源

你用message.mentions.members.first()获取到的是GuildMember对象(也就是服务器成员实例),但bot这个布尔属性并不属于GuildMember——它是User对象的专属属性。User对象存储的是用户的全局账号信息,而GuildMember是用户在某个特定服务器里的身份数据,所以直接调用profileMentionned.bot自然拿不到正确的布尔值。

解决方案

只需要先通过GuildMember的user属性获取到对应的User对象,再去判断bot属性就可以了。另外建议先检查是否真的获取到了提及的成员,避免出现空值报错:

let profileMentionned = message.mentions.members.first();

// 先处理没有提及用户的情况
if (!profileMentionned) {
    return message.reply("你还没提及任何用户呢!");
}

// 正确判断是否为机器人
if (profileMentionned.user.bot) {
    message.reply("这个用户是机器人哦!");
} else {
    message.reply("这是一个真实的用户~");
}

补充说明

简单区分下这两个对象:

  • GuildMember:包含用户在当前服务器的专属数据,比如角色、服务器内昵称、加入时间等
  • User:包含用户的全局账号数据,比如头像、用户名、是否是机器人(bot属性)等

所以只要先拿到User对象,就能准确判断目标用户是否是机器人啦!

内容的提问来源于stack exchange,提问作者ZaKLaKe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:53:43