【问题标题】:How do i list every member in a specific role?如何列出特定角色的每个成员?
【发布时间】:2019-06-10 23:05:04
【问题描述】:

我正在使用 discord.js,我正在尝试创建一个自定义命令,它的工作原理如下:当有人执行“!team”时,机器人将回复用户,服务器中具有特定角色的每个人.

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 我不知道该尝试什么..
  • 您应该查看 Discord API 文档here。您似乎可以获得特定服务器的角色和特定服务器的成员。交叉参考这两个列表,你应该有你的答案。

标签: discord.js


【解决方案1】:

您可以执行以下操作,这将找到所有具有“TestRole”角色的成员

const membersWithRole = message.guild.members.filter(member =>
    member.roles.find("name", "TestRole")
).map(member => member.user.username)

消息未定义,因为您必须在事件发生时运行此代码,如下所示

client.on("message", async message => {
    const membersWithRole = message.guild.members.filter(member =>
        member.roles.find("name", "TestRole")
    ).map(member => member.user.username)
    // Do something
});

【讨论】:

  • 这就是我所拥有的:codeconst membersWithRole = message.guild.members.filter(member => member.roles.find("name", "Bots") ).map(member => member.user.username) bot.on('message', (message) => { if (message.content == '!team') { message.channel.sendMessage(membersWithRole); } }); 它给了我这个错误: const membersWithRole = message.guild.members.filter(member => ReferenceError: message is not defined
  • 我正在尝试将此作为命令。 code bot.on("message", async message => { const membersWithRole = message.guild.members.filter(member => member.roles.find("name", "TestRole") ).map(member => member.user.username) if (message.content == '!team') { message.channel.sendMessage(membersWithRole); } });
  • 帖子中显示的Collection.find() 的用法已弃用;而是传递一个函数。 TextChannel.sendMessage() 也已弃用;使用TextChannel.send()。至于把它变成一个命令......我建议谷歌搜索一个简单的命令指南或教程。
猜你喜欢
  • 1970-01-01
  • 2020-12-05
  • 2021-07-01
  • 1970-01-01
  • 2021-03-24
  • 2021-06-29
  • 2021-05-02
  • 2020-10-12
  • 2019-04-22
相关资源
最近更新 更多