Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord.js V12如何显示具有特定角色的所有成员?_Javascript_Discord.js_Roles - Fatal编程技术网

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

Javascript Discord.js V12如何显示具有特定角色的所有成员?,javascript,discord.js,roles,Javascript,Discord.js,Roles,我试图发出一个命令,显示具有特定角色的所有成员。该命令应该类似于$rolelist,它在具有角色测试角色的消息中显示所有成员的显示名称。 如果可以的话,请帮帮我 client.on('message', async message => { if (message.content.startsWith(prefix + "rolelist")) { const testRole = message.guild.roles.cache.find(r

我试图发出一个命令,显示具有特定角色的所有成员。该命令应该类似于
$rolelist
,它在具有角色
测试角色的消息中显示所有成员的显示名称。
如果可以的话,请帮帮我

client.on('message', async message => {
    if (message.content.startsWith(prefix + "rolelist")) {
        const testRole = message.guild.roles.cache.find(role => role.name == "TEST ROLE");
        const members = message.guild.members.filter(member => member.roles.find(testRole)).map(member => member.user.username)
        message.channel.send(`These people currently have the TEST ROLE: \n${members}`)
    }})
client.on('message',异步消息=>{
if(message.content.startsWith(前缀+“rolelist”)){
const Role=message.guild.roles.cache.find(Role=>Role.name==“测试角色”);
const Members=message.guild.Members.cache.filter(member=>member.roles.cache.find(role=>role==role)).map(member=>member.user.tag);
message.channel.send(`userswith${Role.name}:${Members}`);
};
});
由于您使用的是V12,您忘记将
缓存添加到
message.guild.members
message.roles

另外,您使用的find函数是错误的

你不能这样使用它:

member.roles.cache.find(testRole)
以下是您应该如何使用它:

members.roles.cache.find(role=>role==testRole)

我的方法是创建一个等于空数组的变量。接下来,使用forEach循环,对于服务器的每个成员,您希望为某个角色找到.find(),如果它在该成员的角色中找到该角色,您可以将该用户的ID.push()推送到数组中,否则循环将继续。这可能不管用,只是我想到的。谢谢,管用。另外,如何使其显示用户的昵称?您可以使用
GuildMember
昵称
属性。示例:
message.channel.send(member.昵称| | member.user.tag)
。(昵称可能未定义。如果是,我们将使用成员标记。)