discord.js - 机器人不会添加角色:TypeError:无法读取未定义的属性“添加”

Posted

技术标签:

【中文标题】discord.js - 机器人不会添加角色:TypeError:无法读取未定义的属性“添加”【英文标题】:discord.js - Bot wont add role: TypeError: Cannot read property 'add' of undefined 【发布时间】:2021-04-18 21:07:12 【问题描述】:

我正在制作一个 Discord 机器人来管理我的服务器。我想添加一个命令,使用命令!role [role name] 赋予作者任何角色。

我用过这个:

const member = message.author
const rle = message.content.split(/ +/).slice(1).join(' ');
const role1 = message.guild.roles.cache.find(role => role.name === `$rle`);

try 
  member.roles.add(role1);
 catch (e) 
  message.author.send($e);

它(假设我正确拼写了角色)返回以下错误:

"TypeError: Cannot read property 'add' of undefined"

有人知道我将如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

author 属性没有roles 属性。这是一个常见的错误。 message.author 返回一个User 类,而message.member 返回一个GuildMember 类。

您只需将message.author 更改为message.member 即可!

【讨论】:

【参考方案2】:

试试这个:

const member = message.author
const rle = message.content.split(/ +/).slice(1).join(' ');
const role1 = message.guild.roles.cache.find(role => role.name === `$rle`);
                
        
 try 
  
   message.guild.member(member).roles.add(role1);
  


 catch (e) 
  
   message.author.send($e); 
  

【讨论】:

以上是关于discord.js - 机器人不会添加角色:TypeError:无法读取未定义的属性“添加”的主要内容,如果未能解决你的问题,请参考以下文章

无法添加角色,Discord.js

使用 Discord.js 检测到添加的特定角色时删除另一个角色

当有人对消息做出反应时,我如何让我的 discord.js 机器人添加角色?

如何从提及 discord.js 添加角色

如何检查我的机器人是不是可以在 discord.js v12 中添加角色?

Discord.js :将特定服务器上的角色添加到 DM 机器人的用户