有没有办法在不提及/ping他们的情况下向某人添加角色? [discord.js]

Posted

技术标签:

【中文标题】有没有办法在不提及/ping他们的情况下向某人添加角色? [discord.js]【英文标题】:Is there a way to add a role to someone without mentioning/pinging them? [discord.js] 【发布时间】:2020-11-04 10:27:41 【问题描述】:

标题差不多。每次我尝试使用此功能向某人添加角色时:

const member = message.author;
member.roles.add('732727208774205460');

我最终得到了这个类型错误:

TypeError: Cannot read property 'add' of undefined

但是,如果我这样使用它:

const member = message.mentions.members.first();
member.roles.add('732727208774205460');

它工作得很好。问题是,只有当我添加角色的人被用户提及/ping通时才有效。我正在尝试向用户 self 添加一个角色,用户不会 ping 任何人(主要用于审查)。有没有办法在不出现 TypeError 的情况下做到这一点?

【问题讨论】:

【参考方案1】:

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

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

您正在寻找 message.member,它的类型为 GuildMember,它表示公会内部特定用户的个人资料(message.member 只是 message.author,但作为 GuildMember 而不是 User )。具有角色的是 GuildMember 类型。

解决方案:

const member = message.member;
member.roles.add('732727208774205460');

官方文档: User, GuildMember

【讨论】:

以上是关于有没有办法在不提及/ping他们的情况下向某人添加角色? [discord.js]的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 有没有办法在不覆盖子视图的任何手势的情况下向视图添加手势?

ffmpeg:在不创建新文件的情况下向 mp4 添加字幕

如何在不缩小r闪亮中的矩阵大小的情况下向输入矩阵添加列?

我如何在不和谐中 ping 某人

有没有办法在不加入公会的情况下从提及中获取用户的 ID?

在不干扰平移的情况下向 MKMapView 添加左滑动手势