Как перезаписать пропуски для голосового канала?

#discord #discord.js

#Discord #discord.js

Вопрос:

Для моей родительской категории для perms установлено значение «все не могут подключаться к созданным каналам», и я хочу, чтобы, когда кто-то реагировал на ✅, бот разрешал любому присоединиться к голосовому каналу. Код не создает ошибок, но разрешения не меняются. Кто-нибудь знает, почему?

Вот мой код:

 if(reaction.emoji.name === '✅') {
                    message.channel.overwritePermissions([
                        {
                           id: message.channel.guild.roles.everyone, 
                           allow: ['CONNECT'],
                           
                        },
                    ]);
                      
                }
 

Ответ №1:

Чтобы обновить перезапись разрешений роли «@everyone», вместо этого вам нужно будет использовать message.guild.id

В дополнение к этому, в настоящее время вы пытаетесь обновить перезаписи a text channel , чтобы предоставить connect разрешения всем на сервере, что, давайте будем честными, на самом деле не имеет особого смысла. Если вы пытаетесь выполнить эту команду, пока исполнитель присутствует внутри голосового канала, вот что я бы посоветовал:

  • Прежде всего, вы можете передать user аргумент в свой сборщик реакций, поэтому вы можете просто использовать const member = reaction.guild.member(user.id) для получения объекта GuildMember реактора.
  • После того, как бот нашел объект GuildMember, вы можете просто использовать member.voice.channel функцию, чтобы получить объект канала исполнителя

И, наконец, после выполнения всего вышеперечисленного ваш код должен выглядеть следующим образом:

 const member = reaction.guild.member(user.id)
    const channel = member.voice.channel
    channel.overwritePermissions([
        {
            id: message.guild.id,
            allow: ['CONNECT']
        }
    ])
 

Комментарии:

1. Большое вам спасибо! Если мой код для создания канала такой: «message.guild.channels .create(name, { type: ‘voice’, }) .then(channel => { const CategoryID = ‘790702060835176461’ channel.SetParent(CategoryID) channel.setUserLimit(30) }) «не путает ли вызывающий канал в коде?

2. Извините, я немного сбит с толку, так как трудно понять, когда все находится в одной строке xd Не могли бы вы отправить мне сообщение в Discord (@Bqre #0001), чтобы я мог взглянуть?