Discord.js - ReferenceError:未定义成员

Posted

技术标签:

【中文标题】Discord.js - ReferenceError:未定义成员【英文标题】:Discord.js - ReferenceError: member is not defined 【发布时间】: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;
    
)

【问题讨论】:

【参考方案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,我帮你改好了

以上是关于Discord.js - ReferenceError:未定义成员的主要内容,如果未能解决你的问题,请参考以下文章

Discord 错误错误 Discord.js 中的无效令牌

Discord 仅识别 discord.js 中的“ping”命令

错误“const Discord = require(discord.js) ^ ReferenceError: discord is not defined”

(Discord 机器人)当用户加入 Discord 服务器(discord.js)时,如何发送欢迎消息?

Discord.js 和 discord.js-commando 防止命令在特定通道中运行

使用 Discord 按钮的建议命令 Discord.JS