有没有一种方法可以向某人添加角色而无需提及/查验他们? [discord.js]

时间:2020-07-15 01:09:56

标签: discord.js

几乎是标题。每当我尝试使用此功能向某人添加角色时:

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的方法?

1 个答案:

答案 0 :(得分:0)

由于message.author.roles未定义,因此您收到错误消息,因此尝试在其上使用.add()会导致错误。

message.author的类型为User,代表不和谐的用户,并且与任何特定的服务器都不相关。

您正在寻找类型为message.member的{​​{1}},它代表着公会中特定用户的个人资料(GuildMember只是message.member却是{ {1}},而不是message.author)。具有角色的是GuildMember类型。

解决方案:

User

官方文档: UserGuildMember