【问题标题】:How do make Discord.JS client give role to message author if a staff member reacts his message?如果工作人员对他的消息做出反应,如何让 Discord.JS 客户端赋予消息作者角色?
【发布时间】:2021-03-23 04:08:57
【问题描述】:
   client.on('message', async message => {
      var staffmember = message.guild.members.cache.filter(member => {
        member.roles.cache.get('785610325457764383')
      })

      let user = message.author.id
      if(message.channel.id !== '752887367052034108') return
        message.react('752897613669335140')
        message.react('752896964718362644')
        .then(() => {
          message.awaitReactions(reaction => reaction.id === '752897613669335140' && staffmember,  {
          })
          .then((collected) => {
            if(collected.reaction.id === '752897613669335140') {
              user.roles.add('786958045350854698')
              user.send('role given.')
            }
          })
          
        })
  })

这是我的代码。在可以被过滤器接受的成员通过正确的 ID 对消息做出反应后,机器人不执行任何操作。

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    要对用户使用 .roles 属性,他们必须是 Discord.GuildMember,而不是 Discord.User。这意味着你必须改变

    let user = message.author.id
    

    与

    let user = message.member
    

    【讨论】:

    • 首先感谢您的关注。我按照您的方式编辑了我的代码,但它仍然无法正常工作。我用另一种方式给成员一个角色。
    • 如果它仍然不起作用,另一个可能的错误可能是当您创建“staffmember”变量时,尝试将“return”放在“member.roles.cache.get('785610325457764383' )"
    • naaah,我想通了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2020-11-21
    • 2021-07-02
    • 2021-05-14
    • 2021-02-06
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多