【发布时间】:2021-08-12 18:10:32
【问题描述】:
我正在尝试为 Discord 制作会员机器人。机器人将从 API 中检索用户 ID 和角色,并需要从用户中删除此角色。
首先我得到了特定用户所在的公会:
const guild = client.guilds.cache.get('842361027562831872');
然后我通过名称找到角色:
let role = guild.roles.cache.find(role => role.name === "Sport");
if (!role) return;
然后我试图通过他的ID找到用户,并删除上述角色。但是用户始终未定义:
guild.members.cache.get(user.user).roles.remove(role);
通常,当我添加角色时,我会使用消息对象,然后使用该消息中的公会,如下所示:
let role = message.guild.roles.cache.find(role => role.name === "Sport");
if (!role) return;
message.guild.members.cache.get(message.author.id).roles.add(role);
但是我从 API 中检索数据,所以我必须以另一种方式进行。
我的脚本的完整代码:
get('/expired', '', function (result) {
let users = result.data.users;
const guild = client.guilds.cache.get('842361027562831872');
users.forEach(user => {
let role = guild.roles.cache.find(role => role.name === user.role);
if (!role) return;
guild.members.cache.get(user.user).roles.remove(role);
});
});
【问题讨论】:
标签: javascript node.js discord.js