如何在“就绪”时找到所有具有特定角色的成员?不和谐.js

Posted

技术标签:

【中文标题】如何在“就绪”时找到所有具有特定角色的成员?不和谐.js【英文标题】:How do I find all members with a specific role on 'ready'? Discord.js 【发布时间】:2021-06-19 08:57:19 【问题描述】:

我知道以前有人问过这个问题,但我还没有为最新版本的 Discord.JS 找到可靠的答案。我想查找公会 hostGuild 中所有具有“xyz”角色的成员。

client.on('ready', () => 
    const hostGuild = client.guilds.cache.get('822234110369595443');
    //get users with role 'xyz'
    
);

【问题讨论】:

这能回答你的问题吗? How do I list all Members with a Role In Discord.Js 那是旧版本的 Discord.JS 它应该在 v12 中仍然可以工作。编辑:没关系你是对的...... 【参考方案1】:

你试过.members.cache吗?它看起来像这样:

const membersWithRole = hostGuild.members.cache.filter(m => m.roles.cache.has('roleid'));

编辑:它似乎不起作用,因为成员和角色没有被缓存。您需要在这里使用 async/await:

const allMembers = await hostGuild.members.fetch();
const membersWithRole = allMembers.filter(m => m.roles.cache.has('roleid'));

【讨论】:

以上是关于如何在“就绪”时找到所有具有特定角色的成员?不和谐.js的主要内容,如果未能解决你的问题,请参考以下文章

如何仅使用 discordjs v12 存储具有特定角色的成员的所有数据

如何修剪没有特定角色的不和谐用户?

加入不和谐服务器时如何为特定成员添加角色

如何让我的机器人忽略来自具有特定角色的人的消息? (不和谐.py)

Discord.js V12 如何显示具有特定角色的所有成员?

Discord.js 获取所有具有特定角色的成员