Discord. js отключить @evereyone доступ к новому каналу - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужен приведенный ниже код, чтобы создать каналы по команде и разрешить роли member иметь к ней доступ, в то время как роль @everyone не имеет к ней доступа.

module.exports = {
    name: 'channel',
    description: 'Creates a new channel for the user.',
    aliases: ['channel'],
    cooldown: 5,
    execute(message) {
        const userName = message.author.username;
        const channelName = `Channel for ${userName}`;

        message.guild.channels.create(channelName,{
        type: 'text',
        persmissionOverwrites: [
                { 
                    id: message.guild.id,
                    deny: ['VIEW_CHANNEL'],
                    deny: ['SEND_MESSAGE'],
                },
                {
                    id: message.author.id,
                    allow: ['VIEW_CHANNEL'],
                },
            ],
        });
        message.channel.send(`Hi ${message.author} your new channel is ${channelName}`);
    },
};

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

1 Ответ

0 голосов
/ 12 апреля 2020

Основная причина того, что вы не получаете никаких ошибок или прав на переписывание, заключается в том, что вы написали persmissionOverwrites вместо permissionOverwrites

message.guild.id не возвращает роль или пользователя.

Вы необходимо заменить message.guild.id при первом перезаписи разрешения на message.guild.roles.everyone

Вы сделали опечатку с одним из ваших разрешений SEND_MESSAGE, которое должно быть SEND_MESSAGES

Кроме того, вам не нужно добавлять deny дважды, это массив, вы можете ввести столько разрешений, сколько захотите.

Таким образом, вместо

deny: ['VIEW_CHANNEL'],
deny: ['SEND_MESSAGES'],

Запись deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'],

...