【问题标题】:Roles from reaction反应中的角色
【发布时间】:2020-11-24 18:03:09
【问题描述】:

因此,当机器人发送特定消息时,它也会对其做出反应。现在我试图检查对该反应做出反应的用户是否具有特定角色,但到目前为止我还无法这样做。

 bot.on('messageReactionAdd', (reaction, user) => {
            //var member = reaction.message.guild.members.cache.find(member => member.id = user.id);
            //if(message.member.roles.cache.some(role => role.name === 'Bronze')) return(message.channel.send("you dont have role."));

if (reaction.message.members.roles.cache.has('729452091168260188')) return(message.channel.send("you have the role"));
            else { console.log("you dont have role"); }
         })

【问题讨论】:

  • 请将您目前拥有的代码编辑成问题。
  • 显示您尝试过的内容并解释失败的原因。 “我没能”不是问题描述。
  • 我已经编辑过了。我试图这样做,但它给了我错误 - “无法读取未定义的属性'角色'”
  • 那么问题是 react.message.members 未定义尝试打印 reacion.message.members 看看它是否等于任何东西
  • //var member = reaction.message.guild.members.cache.get(user.id); 您已注释此代码,这可能就是您需要的,删除注释并将reaction.message.members. 更改为member.find 更改为get,因为您不需要 id找到它

标签: discord bots discord.js


【解决方案1】:

您在以下代码行中犯​​了一个错误:

reaction.message.members.roles.cache.has('729452091168260188')

Message 对象没有属性members,应该是member

reaction.message.member.roles.cache.has('729452091168260188')

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2020-06-29
    相关资源
    最近更新 更多