,此命令仅设置为一个角色。我想设置多个角色。我该怎么办?
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"))```
答案 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)
个用户,它是一个集合,而不是数组。