【问题标题】:Discord.js - ReferenceError: member is not definedDiscord.js - ReferenceError:未定义成员
【发布时间】:2020-09-19 04:27:27
【问题描述】:

我遇到了这个问题,我正在尝试添加一个名为 Simon Says Player 的角色,有人可以帮忙吗??

bot.on('message', message => {

    let args = message.content.substring(PREFIX.length).split(" ");

    switch (args[0]) {
        case 'join':

            let person = message.guild.member

            if (!person) {
                return message.reply('Couldn`t find the user!');
            }

            let mainRole = (role => role.name === "Simon Says Player");

            member.addRole(mainRole.id);

            message.channel.send('Successfully Entered The Game!!')

            break;
    }
})

【问题讨论】:

    标签: javascript node.js discord discord.js roles


    【解决方案1】:

    尝试message.member.addRole(mainRole.id) 而不是member.addRole(mainRole.id)

    这应该适用于您的示例:

        switch (args[0]) {
            case 'join':
    
                    let person = message.member
    
                    if (!person) {
                        return message.reply('Couldn`t find the user!');
                    }
    
                    let mainRole = message.guild.roles.cache.find(role => role.name === "Simon Says Player");
                    message.member.roles.add(mainRole);
    
    
                    message.channel.send('Successfully Entered The Game!!')
    
                break;
        }
    

    【讨论】:

    • 另外,您将person 定义为message.guild.member,这是错误的:请改用message.member。你可以找到Messagehere的文档
    • TypeError: message.member.addRole 不是函数
    【解决方案2】:

    member 实际上是undefined,您没有说明预期的功能,但据我所知,您正试图为发送join 命令的成员赋予角色。

    bot.on('message', message => {
    
      let args = message.content.substring(PREFIX.length).split(" ");
    
      switch (args[0]) {
        case 'join':
    
          let person = message.guild.member
    
          if (!person) {
            return message.reply('Couldn`t find the user!');
          }
    
          let mainRole = message.guild.roles.cache.find(role => role.name === "Simon Says Player");
    
          message.member.roles.add(mainRole.id);
    
          message.channel.send('Successfully Entered The Game!!')
    
          break;
      }
    })
    

    【讨论】:

    • 那么我该如何解决这个问题?我是编程新手
    • 复制粘贴我的答案,你需要做的我已经写好了。
    • 我刚刚根据您对另一个答案的评论编辑了我的评论,您使用的是 discord.js v12,因此您需要使用 roles.add() 而不是 addRole()
    • (node:17088) UnhandledPromiseRejectionWarning: TypeError [INVALID_TYPE]: 提供的角色不是角色、雪花或数组或角色或雪花的集合。这是一个角色
    • 你没有正确定义mainRole,我帮你改好了
    猜你喜欢
    • 2020-09-08
    • 2020-09-18
    • 2021-03-04
    • 2020-12-21
    • 2021-05-06
    • 1970-01-01
    • 2021-11-26
    • 2021-06-03
    • 2020-11-15
    相关资源
    最近更新 更多