当前位置: 首页 > 知识库问答 >
问题:

不一致js从特定公会中删除用户角色

徐洛华
2023-03-14

我正试图为不和谐做一个会员机器人。机器人将从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);
            });
        });

共有1个答案

董永宁
2023-03-14

显然,我必须使用fetch方法,然后返回一个promise。

guild.members.fetch(user.user).then(member => {
     member.roles.remove(role);
     member.send(`Your subscription for ${user.role} is expired.`);
}).catch(console.log);

然后,我可以删除该用户的角色并向他/她发送直接消息。

 类似资料:
  • 我正在使用discord.js制作一个不和谐机器人,然而,它不让我得到公会的角色并找到一个特定的角色。这有点令人困惑,所以这是代码: 控制台会显示公会ID和角色与信息的长映射,但在定义

  • 我的问题是,我在尝试删除不一致的邮件时收到错误。 我收到这个错误: 我还尝试了,但我收到一个错误,告诉我消息未定义。 当我删除试图删除消息的代码时,程序就会工作。

  • 我试图将所有用户从一个具有特定角色的VC中转移出来,例如:!召唤@role 这样,所有具有特定角色的用户都应该来到VC,用户在那里键入该命令 目前我的代码是这样的: 目前,我正在移动所有用户,但是我只希望用户具有知情的角色 我试着用: 但是没有成功。。。有人能帮我解决这个问题吗?

  • 我有不和谐的服务器,和一个网站。在网站上,我想阅读一个不和谐用户在特定公会(我的不和谐服务器)中的角色,并根据他们在我的服务器上的不和谐角色显示一些内容。一个示例是检查用户是否已被列入白名单(给定白名单角色)。 我试图通过正常的API读取信息,但这是不可能的。相反,我尝试使用机器人,但我不知道如何通过机器人API访问用户信息。有人能给我指出正确的方向,或者帮助我吗?谢谢。

  • 我不知道为什么我的反应角色代码不起作用。如果有人能帮助我,我将不胜感激! message函数用于缓存消息,以便bot可以检测对该消息的反应,如果确实需要的话,Idk。 也没有错误,只是没有给我角色。

  • 问题内容: 我有一个ReactJS HTML表格组件,并使用方法更新了它的内容(单元格值)。这是基本代码: 您可以这样使用它: 大部分时间都在工作。我可以通过执行以下操作来更改数据(在函数中的某处): 如您所见,它将在表的末尾添加一行。但是,如果我尝试在此更新后设置初始数据,或者以任何方式通过设置为较小的数组(例如应删除最后一行)来 缩短 行数: 我收到此错误: TypeError:updated