Может быть, что-то подобное подойдет вам? (В сухом коде, YMMV.)
Идея состоит в том, чтобы использовать .toLowerCase()
в двух операторах фильтрации, которые рассматривают имена ролей, как в глобальном списке ролей, так и в списке ролей для каждого члена.
module.exports.run = async (bot, message, args) => {
const roleName = args[0];
//Message checks
if (!roleName) return message.channel.send("You must specify a role name");
const roleFind = message.guild.roles.find(roles => roles.name.toLowerCase() === roleName.toLowerCase());
if (!roleFind) return message.channel.send(`Can't find role ${roleName}`);
const memberNamesWithRole = [];
message.guild.members.forEach(member => {
if (member.roles.some(memberRole => memberRole.name.toLowerCase() === roleName.toLowerCase())) {
memberNamesWithRole.push(member.user.username);
}
});
const serverembed = new Discord.RichEmbed()
.setColor("#FFD700")
.addField("Role name", roleName)
.addField("Number of users with the role", memberNamesWithRole.length)
.addField("Users with the role", memberNamesWithRole.join("\n"));
message.channel.send(serverembed);
};