Discord.js 从提到的不和谐内容中识别管理员

Discord.js 从提到的不和谐内容中识别管理员,discord.js,Discord.js,我想知道我正在使用if(message.indications.users.first())进行的消息中是否有提及,但现在在所有提及中,我还想过滤掉对管理团队的提及,而不是对社区成员的提及。如何做到这一点 我尝试根据这样的角色筛选用户 let r = []; message.mentions.users.forEach( user => { console.log('user' + user) user.roles.forEach(role =&

我想知道我正在使用
if(message.indications.users.first())
进行的消息中是否有提及,但现在在所有提及中,我还想过滤掉对管理团队的提及,而不是对社区成员的提及。如何做到这一点

我尝试根据这样的角色筛选用户

   let r = [];
   message.mentions.users.forEach( user => {
        console.log('user' + user)
        user.roles.forEach(role => {
            console.log('role' + role)
            r.push(role);
        }) 
        console.log('roles' + r);
        var member = false;
        for (i in r) {
            if (i == 'admin') {
                member = true;
            }
        }
    })
这似乎不起作用; const adminId=['']; client.on('message',(msg)=>{ 让admins=msg.indications.members.filter((用户)=>{ 返回adminId.some(id=>user.roles.has(id))| | user.roles.some(r=>adminName.includes(r.name)); }); log(admins.map(d=>d.user.username)); }); 在那里,我创建了两个数组,一个具有角色ID,另一个具有角色名称。您可以同时使用两者,也可以只使用一个(我更喜欢使用id,因为您可以更改角色名称,但不能更改id,除非删除角色)

然后,我在提到这些消息时重复了一遍。为什么是
成员
而不是
用户
?因为
GuildMember
是链接到公会的类型,公会是公会中用户的实例,因此它具有用户角色

然后我检查我的管理员角色的id之一是否在用户的角色中,或者如果角色名称之一在我的
adminName

变量
admins
GuildMember
的集合

您可以更改
some
中的函数,以匹配使某人成为您的管理员的任何条件。

const adminName=['';
const adminId=[''];
client.on('message',(msg)=>{
让admins=msg.indications.members.filter((用户)=>{
返回adminId.some(id=>user.roles.has(id))| | user.roles.some(r=>adminName.includes(r.name));
});
log(admins.map(d=>d.user.username));
});
在那里,我创建了两个数组,一个具有角色ID,另一个具有角色名称。您可以同时使用两者,也可以只使用一个(我更喜欢使用id,因为您可以更改角色名称,但不能更改id,除非删除角色)

然后,我在提到这些消息时重复了一遍。为什么是
成员
而不是
用户
?因为
GuildMember
是链接到公会的类型,公会是公会中用户的实例,因此它具有用户角色

然后我检查我的管理员角色的id之一是否在用户的角色中,或者如果角色名称之一在我的
adminName

变量
admins
GuildMember
的集合


您可以更改
some
中的函数,以匹配使某人成为您管理员的任何条件。

只需将提及集合筛选给只有特定角色或权限的成员,具体取决于您所说的管理员。只需将提及集合筛选给只有特定角色或权限的成员,这取决于你所说的“管理员”是什么意思。然而,我的需求发生了变化,为此,我使用的解决方案是,我创建了一个memberids的json对象,并将其映射到我希望为每个管理员成员获取的数据。尽管如此,我还是会接受这个答案,因为这提供了必要的解决方案和很好的洞察力。然而,我的需求发生了变化,为此,我使用的解决方案是,我创建了一个memberids的json对象,并将其映射到我希望为每个管理员成员获取的数据。尽管如此,我还是会接受这个答案,因为这提供了必要的解决方案和深刻的见解。