【问题标题】:Bot not adding Role in raw Event机器人未在原始事件中添加角色
【发布时间】:2019-04-17 03:48:45
【问题描述】:

我无法为做出反应的用户指定任何角色。

bot应该给正在反应的人一个特定的角色,但是每次我反应的时候,它都会抛出一个错误:

TypeError: Cannot read property 'addRole' of undefined

这是代码:

bot.on("raw", event => {
  if (event.t == "MESSAGE_REACTION_ADD" || event.t == "MESSAGE_REACTION_REMOVE") {
    if (event.d.message_id === "527150993033527296") {
      if (event.d.user_id !== bot.user.id) {
        if (event.d.emoji.id === "527129359895625728") {
          var myRole = "525279851247173644";
          defRole(myRole);
        }

        function defRole() {
          if (event.t === "MESSAGE_REACTION_ADD") {
            event.d.user_id.guild.addRole(myRole);
            var myRole;
          } else {
            var myRole;
          }
        }
      }
    }
  }
});

【问题讨论】:

  • 无法确定答案,因为我似乎无法在文档中找到正确的答案,但 user_id 可能没有公会属性,因此没有 addRole 函数。我认为您必须通过 user_id 获取用户,然后调用 addRole()。

标签: javascript node.js bots discord.js


【解决方案1】:

git 它使用此代码:

bot.on("raw", event => {
    if (event.t == "MESSAGE_REACTION_ADD" || event.t == "MESSAGE_REACTION_REMOVE") {
        if (event.d.message_id === "529692171234705418") { //ID of Message where the Reaction is added
          if (event.d.user_id !== bot.user.id) {
              let reaction = event.d.emoji.id;
              if (reaction === "527129359895625728") { // Reaction Emoji ID
                  var myRole = "525279851247173644";   // Role Id
                  defRole(myRole);
              }
              function defRole() {
                  const myGuilds = bot.guilds.get(event.d.guild_id);
                  if (event.t === "MESSAGE_REACTION_ADD") {
                      myGuilds.fetchMember(event.d.user_id).then(member => member.addRole(myGuilds.roles.get(myRole))).catch(console.error);
                  }
                  else {
                      myGuilds.fetchMember(event.d.user_id).then(member => member.removeRole(myGuilds.roles.get(myRole))).catch(console.error);
                  }
              }
          }
      }
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2017-11-08
    • 2021-09-03
    • 2023-03-29
    • 2021-04-18
    • 2020-10-03
    • 2019-02-01
    相关资源
    最近更新 更多