Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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中具有角色的所有成员_Javascript_Discord.js - Fatal编程技术网

Javascript 如何列出在Discord.Js中具有角色的所有成员

Javascript 如何列出在Discord.Js中具有角色的所有成员,javascript,discord.js,Javascript,Discord.js,如何使用Discord.js列出角色中的成员 我的代码: client.on("message", message => { var guild = message.guild; let args = message.content.split(" ").slice(1); if (!message.content.startsWith(prefix)) return; if (message.author.bot) return; if(mess

如何使用
Discord.js
列出角色中的成员

我的代码:

client.on("message", message => {
    var guild = message.guild;
    let args = message.content.split(" ").slice(1);
    if (!message.content.startsWith(prefix)) return;
    if (message.author.bot) return; 
    if(message.content.startsWith(prefix + 'go4-add')) {
        guild.member(message.mentions.users.first()).addRole('415665311828803584');                     
    }
});
我将如何列出在嵌入中具有
go4
角色的所有成员。当消息
.go4 list
输入到频道中时,我希望bot用嵌入的消息进行响应

if(message.content.startsWith("//inrole")){
    let roleName = message.content.split(" ").slice(1).join(" ");

    //Filtering the guild members only keeping those with the role
    //Then mapping the filtered array to their usernames
    let membersWithRole = message.guild.members.filter(member => { 
        return member.roles.find("name", roleName);
    }).map(member => {
        return member.user.username;
    })

    let embed = new discord.RichEmbed({
        "title": `Users with the ${roleName} role`,
        "description": membersWithRole.join("\n"),
        "color": 0xFFFF
    });

    return message.channel.send({embed});
}
关于discord的示例使用:

但请注意,如果有许多成员担任该角色,则可能会出现错误,告诉您已超过可放入嵌入中的字符数。在这种情况下,您可以决定发送多个嵌入来拆分用户。

返回一个s。只需映射此集合即可获得所需的属性

根据您的场景,这里有一个示例:

message.guild.roles.get('415665311828803584').members.map(m=>m.user.tag);
这将从具有“go4”角色的成员输出一组用户标记。现在您可以
。将(…)
此数组加入到所需格式

另外,
guild.member(message.indications.users.first()).addRole('415665311828803584')
可以缩短为:
message.notices.members.first().addRole('415665311828803584')

下面是一个粗略的例子,说明结果如何:

client.on("message", message => {

    if(message.content.startsWith(`${prefix}go4-add`)) {
        message.mentions.members.first().addRole('415665311828803584'); // gets the <GuildMember> from a mention and then adds the role to that member                     
    }

    if(message.content == `${prefix}go4-list`) {
        const ListEmbed = new Discord.RichEmbed()
            .setTitle('Users with the go4 role:')
            .setDescription(message.guild.roles.get('415665311828803584').members.map(m=>m.user.tag).join('\n'));
        message.channel.send(ListEmbed);                    
    }
});
client.on(“message”,message=>{
if(message.content.startsWith(`${prefix}go4 add`){
message.indications.members.first().addRole('415665311828803584');//从提及中获取角色,然后将角色添加到该成员
}
if(message.content==`${prefix}go4 list`){
const ListEmbed=new Discord.RichEmbed()
.setTitle('具有go4角色的用户:')
.setDescription(message.guild.roles.get('415665311828803584').members.map(m=>m.user.tag).join('\n'));
message.channel.send(ListEmbed);
}
});

正如@Wright在他的回答中提到的,如果成员过多,则会抛出错误,因为嵌入最多只能容纳2048个字符,因此您可能希望在发送嵌入之前进行一些检查,然后通过将其拆分为多个嵌入消息来处理过大的嵌入,或者使用基于反应的页面。

自从Discord v12以来,您现在必须使用
roles.add()
而不是
addRole()
我尝试了Newbie的解决方案,但没有成功

message.guild.roles.get('415665311828803584').members.map(m=>m.user.tag)

给了我一个错误。get不是一个函数,可能是discord.js改变了什么

在角色之后添加缓存使其工作

message.guild.roles.cache.find(r=>r.name==args[0])


要提到嵌入中的用户(这看起来比文本好得多),请删除
.tag
,这样就可以了

(m => m.user).join('\n')

1) 您是在询问一个基本的Discord.js示例,还是对如何使用
嵌入有疑问?2) 为什么你所有的代码都被注释掉了?3) 您正在尝试创建一个命令
.go4 add
?4) 你想给邮件中提到的第一个用户添加一个角色?这家伙太聪明了,非常感谢^<代码>常数discord=require(“discord.js”);const embed=new discord.RichEmbed()
你在说什么@新手