discord.js - 通过DM为特定公会的用户添加角色
问题描述
当我尝试
message.member.roles.add('695699359634817094');
我收到以下错误:
TypeError: Cannot read property 'add' of undefined
有没有特定的方法可以添加我的公会 ID 并通过 DM 将他们的角色更新到该特定服务器?
我的功能通过调用命令在公会内工作,但是,通过 DM 它没有。
解决方案
您可以通过使用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 语句。
推荐阅读
- python - Scrapy Parse 回调未定义
- node.js - 在热中更新 MacOS 上的 Node.js 引发异常错误
- javascript - React + Formik - 如何传入新值并将表单设置为脏?
- java - 无法访问我的链表方法,也无法遍历它
- laravel - 当我从 Whatsapp 访问链接时(特别是),我的 Laravel 5.2 会话不会持续存在
- r - 循环遍历列表以提取 R 中的值
- javascript - 如何在 PHP 中使用带有 foreach 循环的多个倒计时?(我是初学者)
- javascript - 将 Google 电子表格值从 Google Apps 脚本传递到 HTML 会返回 undefined
- php - 使用时区检查日期和时间何时过去的问题
- tmux - Tmux 重映射前缀键