#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), чтобы я мог взглянуть?