Discord js v12:无法读取未定义的属性“添加”[重复]
Posted
技术标签:
【中文标题】Discord js v12:无法读取未定义的属性“添加”[重复]【英文标题】:Discord js v12: Cannot read property 'add' of undefined [duplicate] 【发布时间】:2021-03-04 22:36:48 【问题描述】:不知道为什么它不起作用,有人可以帮助我吗?我绝望了。
bot.on("message", (message) =>
var roles = message.author.roles
let roleID = '1234567890';
if (message.author.bot) return;
if(message.content.startsWith(prefix + 'ttt'))
roles.add(roleID);
);
The Error is the same like in the title.
roles.add(roleID);
^
TypeError: Cannot read property 'add' of undefined
【问题讨论】:
我明白了!谢谢! 您好酋长国,请告诉我们您是如何解决问题的。您的解决方案可以帮助具有相同行为的其他人。 【参考方案1】:message.author
中没有属性 roles
。您可能想查看具有该属性的 message.member
。
相关链接:
https://discord.js.org/#/docs/main/master/class/Message https://discord.js.org/#/docs/main/master/class/User【讨论】:
【参考方案2】:如果你想将角色添加给使用它的人,你应该得到消息成员并给予它。
bot.on("message", (message) =>
var roles = message.author.roles
let roleID = '779756792737300490';
if (message.author.bot) return;
if(message.content.startsWith(prefix + 'ttt'))
message.member.roles.add(roleID);
);
我刚改了第 6 行。
您也不能将角色授予用户。您只能将其提供给会员。
您也可以查看文档:
会员:https://discord.js.org/#/docs/main/master/class/Message?scrollTo=member 用户:https://discord.js.org/#/docs/main/master/class/User【讨论】:
【参考方案3】:这将起作用:
bot.on("message", (message) =>
var guildMember = message.member
let roleID = '779756792737300490';
let roleNAME = 'TestRole';
let userID = message.author.tag + " " + (message.author.id);
if (message.author.bot) return;
if(message.content.startsWith(prefix + 'ttt'))
guildMember.roles.add(roleID);
console.log(`Give "$roleNAME" to User "$userID" `)
if(message.content.startsWith(prefix + "zzz"))
guildMember.roles.remove(roleID);
console.log(`Removed "$roleNAME" from User "$userID"`)
);
我还在里面放了一个console.log代码,这样你就可以看到有人删除了一个角色还是给了一个角色,如果你删除了2行代码,它也可以工作;)
【讨论】:
以上是关于Discord js v12:无法读取未定义的属性“添加”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:无法读取未定义 discord.js v12 的属性“发送”
Discord.js V12 TypeError:无法读取未定义的属性“发送”