Можно ли отображать людей с определенными правами доступа в голосовом канале?Discord.js - PullRequest
0 голосов
/ 18 апреля 2019

Я разработчик бот-дисков, пишущих на 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 Ответ

1 голос
/ 18 апреля 2019

Вы можете сделать это, перебрав членов гильдии и добавив любого с разрешением подключиться к каналу в свой список.

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
...