我正在使用discord.js制作一个discord机器人,我要做的是让该机器人找到具有角色A 和 B的成员,并将其列出在嵌入式消息中。目前,我有:
else if (message.content === (!'guns') && message.channel.id == '732740415056380044') {
let team = message.guild.roles.find('name', 'WindStar Team');
let awper = message.guild.roles.find('name', 'AWPer');
let rifler = message.guild.roles.find('name', 'Rifler');
const Members1 = awper = awper.filter(val => !team.includes(val)).map(member => member.displayName);
const Members2 = rifler = rifler.filter(val => !team.includes(val)).map(member => member.displayName);
const embedmesage = new Discord.MessageEmbed()
.setTitle('Preferred Guns')
.setColor(0x00AE86)
.addFields(
{ name: 'AWPers', value: `${Members1.join('\n')}` },
{ name: 'Riflers', value: `${Members2.join('\n')}` },
);
message.channel.send(embedmesage);
return console.log('Preferred gun roles command for windstar team executed');
}
基本上,我正在尝试对具有WindStar Team角色和AWPer角色的成员进行交叉检查,并将所有具有这些角色的成员的列表发送到嵌入中。我还试图通过WindStar团队角色和Rifler角色对成员进行交叉检查,并将这些成员的列表发送到嵌入中。
答案 0 :(得分:0)
let awper = message.guild.roles.find('name', 'AWPer');
awper.members //Either .toArray() or .map(m => m.displayName)
我认为,我没有让我的机器人在我面前进行测试
答案 1 :(得分:0)
我认为现在可能为时已晚,但无论如何我都会给出我的解决方案。 (使用 discord.js v12.5.1)
<Message>
= 您的消息实例
let roleMembers = <Message>.guild.roles.cache.filter(role => role.name === "AwPer" && role.name === "WindStar").members
// displaying the role members
roleMembers.map(member => member.user.username)
基本上,您将获得公会中的所有角色缓存并过滤它们以显示您想要的角色。
这应该有效^。除非你使用的是 discord.js 的破坏版本