discord.js - 有没有办法在不提及/ping他们的情况下向某人添加角色?[discord.js]
问题描述
标题差不多。每次我尝试使用此功能向某人添加角色时:
const member = message.author;
member.roles.add('732727208774205460');
我最终得到了这个 TypeError:
TypeError: Cannot read property 'add' of undefined
但是,如果我这样使用它:
const member = message.mentions.members.first();
member.roles.add('732727208774205460');
它工作得很好。问题是,只有当我添加角色的人被用户提及/ping通时才有效。我正在尝试为用户自己添加一个角色,用户不会 ping 任何人(主要用于审查)。有没有办法可以在不收到 TypeError 的情况下做到这一点?
解决方案
您收到错误是因为message.author.roles
未定义,因此尝试使用.add()
它会导致错误。
message.author
类型为User
,表示不和谐用户,并且不与任何特定服务器关联。
您正在寻找message.member
which has type GuildMember
,它代表公会内的特定用户的个人资料(message.member
只是message.author
作为 aGuildMember
而不是 a User
)。它是GuildMember
具有角色的类型。
解决方案:
const member = message.member;
member.roles.add('732727208774205460');
官方文档: User , GuildMember
推荐阅读
- php - Laravel Passport:使用自定义密码
- javascript - 无法使用 http.post 离子发送数据
- transactions - 在 Ballerina 中无需回调即可获取交易状态
- unity3d - 如何将我的 Unity Vuforia 项目导出到 exe
- swift - UICollectionview - 移动项目时闪烁
- php - 加快计算速率的 SQL 查询
- chef-infra - 食谱厨师厨房的特定版本
- python - Python 的 asyncio 中如何使用 Future 对象?
- postgresql - 管理 Kubernetes 集群上的数据库迁移
- python-3.x - 将 Python 数据帧写入 AWS 红移时,DataError- 类型字符变化(256)的值太长