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 个模组
答案 0 :(得分:0)
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
来表示嵌入描述。只需在多个嵌入之间拆分参数即可。