我如何使discord.js列表在一个角色的所有成员?


if(message.content == `${config.prefix}mods`) {
const ListEmbed = new Discord.MessageEmbed()
.setTitle('Mods:')
.setDescription(message.guild.roles.cache.get('813803673703809034').members.map(m=>m.user.tag).join('n'));
message.channel.send(ListEmbed);                    
}

嘿,所以我做了一个命令,显示所有成员的角色,但它似乎只发送1 mod

await message.guild.roles.fetch();
let role = message.guild.roles.cache.find(role => role.id == args[0]);
if (!role) return message.channel.send('Role does not exist'); //if role cannot be found by entered ID
let roleMembers = role.members.map(m  => m.user.tag).join('n');
const ListEmbed = new Discord.MessageEmbed()
.setTitle(`Users with `${role.name}``)
.setDescription(roleMembers);
message.channel.send(ListEmbed);    
};

确保你的命令是异步的,否则它将不会运行await message.guild.roles.fetch();-这将获取服务器中的所有角色,以确保命令可靠地工作。

Discord.jsV12采用get法,find法。

除此之外,我强烈建议在嵌入和搜索中定义变量,因为它更容易被错误捕获。

如果角色中有许多成员,您将遇到maximum character limit用于嵌入描述。只需将参数拆分为多个嵌入。

最新更新