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 机器人添加角色?