如何通过dm给用户添加角色
Posted
技术标签:
【中文标题】如何通过dm给用户添加角色【英文标题】:How to add a role to a user through dm 【发布时间】:2021-06-17 21:09:37 【问题描述】:所以用户加入服务器并且必须对机器人进行 dm,然后机器人应该给他一个特定的角色(成员)。这是我的代码的一部分:
client.on('message', msg =>
if (msg.channel.type == "dm")
user = msg.author.id;
if (msg.content.startsWith("-bind"))
for (var i = 0; i < keys.length; i++)
if (msg.content.includes(keys[i]) && msg.content.includes(keys_perma[i]))
keys[i] = user;
let server = client.guilds.cache.get('792890734139015218')
var memberRole = server.roles.cache.find(role => role.name === "Member")
let member = server.members.cache.get(msg.author.id)
member.roles.add(memberRole)
temp = 1;
msg.author.send("Key bound!");
break;
但是 member.roles.add(memberRole) 给了我错误:无法读取未定义的属性“角色”
我希望任何人都可以帮助我:)
【问题讨论】:
您是为特定服务器构建机器人还是公共机器人? 针对特定服务器 【参考方案1】:member
正在返回未定义,最好获取成员而不是依赖缓存。对于这个例子,我将使用Promise#then()
来获取成员。
let member = server.members.fetch(msg.author.id).then(m =>
m.roles.add(memberRole);
);
【讨论】:
以上是关于如何通过dm给用户添加角色的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js :将特定服务器上的角色添加到 DM 机器人的用户
如何通过 REST API 将 Keycloak 领域角色添加到组