首页 > 解决方案 > 通过DM为特定公会的用户添加角色

问题描述

当我尝试

message.member.roles.add('695699359634817094');

我收到以下错误:

TypeError: Cannot read property 'add' of undefined

有没有特定的方法可以添加我的公会 ID 并通过 DM 将他们的角色更新到该特定服务器?

我的功能通过调用命令在公会内工作,但是,通过 DM 它没有。

标签: discord.js

解决方案


您可以通过使用message.author.id来获取用户的 ID,然后使用guild.get(guild_ID).members.fetch(user_ID)来访问该用户的 ID GuildMember

您还提到您让用户能够在 DM 或公会中的文本频道中运行该命令。

如果是这种情况,我建议添加检查以查看命令是否正在发送到文本通道或 dm 通道。

if (message.channel.type === "dm") {
    const member = await client.guilds.get(guild_ID).members.fetch(message.author.id);
    member.roles.add(role_ID);
} else {
    message.member.roles.add('695699359634817094');
}

如果您打算只从 dm 运行命令,请忽略 if 语句。


推荐阅读