我的不和谐机器人的成员命令 - 不和谐.js



所以我一直在尝试创建一个 ?members 命令,该命令列出了所有具有角色的用户。

到目前为止,我有这个:

if (message.content.startsWith("?members")) {
let roleName = message.content.split(" ").slice(1).join(" ");
let membersWithRole = message.guild.members.filter(member => {
return member.roles.find("name", roleName);
}).map(member => {
return member.user.username;
})
const embed = new Discord.RichEmbed({
"title": `Members in ${roleName}`,
"description": membersWithRole.join("n"),
"color": 0xFFFF
});
return message.channel.send(embed);

}

因此,如果您键入角色的确切名称,则它有效,但在 ping 它或键入第一个单词时则无效。我已经尝试了几个小时来弄清楚如何做到这一点,我想我应该寻求帮助。

提前感谢!

Ping 在通过时被翻译成代码,官方指南中有很多关于如何解析它们的信息 将其解析为角色 ID 后,您可以使用 members.roles.get((,因为这是它们的索引。

至于查找部分名称,为此,您必须在查找上运行一个函数并使用String.include。

return member.roles.find(role => role.name.includes(roleName));

当然,这也适用于查找全名,因此它可以替换您现有的行。

但是,这可能会导致多个角色。 但是,对于按整个角色名称进行搜索也是如此,因为对重复的命名角色没有限制。 为此,您可能希望首先在 message.guild.roles 中反转设计和搜索任何匹配的角色,然后搜索具有找到的角色的成员。

最新更新