几乎是标题。每当我尝试使用此功能向某人添加角色时:
TypeError: Cannot read property 'add' of undefined
我最终遇到此TypeError:
const member = message.mentions.members.first();
member.roles.add('732727208774205460');
但是,如果我这样使用它:
<form method="GET" action="">
<p>Put whatever you want here. Divs, text, whatever.</p>
</form>
它完全正常。问题是,只有当我向其添加角色的人被用户提及/询问时,该方法才起作用。我正在尝试向用户他自己添加一个角色,该用户不对任何人执行ping操作(主要是针对检查)。有没有办法避免TypeError的方法?
答案 0 :(得分:0)
由于message.author.roles
未定义,因此您收到错误消息,因此尝试在其上使用.add()
会导致错误。
message.author
的类型为User
,代表不和谐的用户,并且与任何特定的服务器都不相关。
您正在寻找类型为message.member
的{{1}},它代表着公会中特定用户的个人资料(GuildMember
只是message.member
却是{ {1}},而不是message.author
)。具有角色的是GuildMember
类型。
解决方案:
User
官方文档: User, GuildMember