显示具有多个角色的用户discord.js

时间:2020-01-15 20:43:59

标签: node.js discord.js

,此命令仅设置为一个角色。我想设置多个角色。我该怎么办?

let rolid = "663047983675342849"; 
  let tokuchi = client.guilds
    .get(sunucuid)
    .roles.get(rolid)
    .members.filter(o => !o.voiceChannel).map(member => member.user); 

 .setDescription(tokuchi.join("\n"))```

1 个答案:

答案 0 :(得分:0)

您可以使所有具有多个角色的成员都像这样,但是显示的其他代码仍然存在问题

    let sGuild = client.guilds.get(sunucuid)
    let membersWithRoles = sunucuid.members.filter(member => {
        return member.roles.some(r=>['ROLEID','ROLEID'].includes(r.id))
    })

console.log(membersWithRoles)

v2版本 首先,您不需要所有命令都行会,为此请使用message.guild

此代码将返回具有您任何角色的用户名数组,如果他们现在没有语音连接,则返回它们。

exports.run = async (client, message, args) => {
    if(message.channel.type === 'dm') return
    if (!message.member.hasPermission("ADMINISTRATOR"))
      return message.channel.send(" Missing Permission");
      let tokuchi = message.guild.members.filter(member => {
        return member.roles.some(r=>['ROLEID','ROLEID'].includes(r.id)) && !member.voiceChannel
    }).map(member => (member.user.username))

  const basarili = new Discord.RichEmbed()
      .setColor('RANDOM')
      .setAuthor(`Seste Olmayan Yetkililer`, client.user.avatarURL)
      .setDescription(tokuchi.join("\n"))
      .setFooter("Created by Tokuchi")
      .setTimestamp()
      .addField(`İşlemi Gerçekleştiren Kişi:`, `${message.author.username}#${message.author.discriminator}`)
  return message.channel.send(basarili)


  };

它返回一个users.username,因为您不能.join('\n)个用户,它是一个集合,而不是数组。