是否可以映射在语音通道中具有特定权限的人? Discord.js

时间:2019-04-18 18:54:55

标签: node.js discord discord.js

我是用JS写的不和谐的机器人开发人员。 我目前正在尝试将在语音通道上具有“连接”权限的用户映射到一些私人捐赠者渠道,以便捐赠者可以看到他们列入白名单的人。 这是我的代码:

if (!message.member.voiceChannel) {

            let novoice = new Discord.RichEmbed()
            .setDescription("Please join your voice chat to use this command.")
            .setColor(config.orange)

            message.delete()
            message.channel.send({ embed: novoice }).then(msg => msg.delete(10000));
            return

        } else if (message.member.voiceChannel.name.includes('')) {

            let list = new Discord.RichEmbed()
            .setAuthor(` List of whitelisted members in ${message.member.voiceChannel}`)
            .setDescription(message.member.voiceChannel.members.filter(members => members.hasPermission('CONNECT') === true).join(" "))

            message.channel.send({ embed: list });
            return

        }

如果您有解决此问题的想法或建议,请告诉我。 谢谢您提前提供帮助!

1 个答案:

答案 0 :(得分:1)

您可以通过循环公会的成员并向其中添加任何有权连接频道的成员来实现此目的。

let whitelisted = [];
let members = message.guild.members.array();

for (var i = 0; i < members.length; i++) {
  if (message.member.voiceChannel.permissionsFor(members[i]).has('CONNECT')) whitelisted.push(`<@${members[i].id}>`);
}

let list = whitelisted.join(', '); // mentions of each user