Изменение прав всех каналов discord

const muteRole = message.guild.roles.cache.find(role => role.name === 'ssssss');

    if (!muteRole) {
        muteRole = await message.guild.roles.create({
                data: {
                    name: "ssssss",
                    color: "#514f48",
                    permissions: []
                }
            })
            message.guild.channels.cache.get( async (channel) => {
                await channel.overwritePermissions(muteRole, {
                    SEND_MESSAGES: false,
                    ADD_REACTIONS: false,
                    SPEAK: false,
                    CONNECT: false,
                })
        })
    }

Мне нужно чтобы в случае если роль мута не найдена, оно создавало роль и сразу изменяло все права всех каналов, добавляя туда созданную роль с правами SEND_MESSAGES: false, ADD_REACTIONS: false, SPEAK: false, CONNECT: false,

Ошибка Uncaught Promise Error: TypeError: Assignment to constant variable.


Ответы (1 шт):

Автор решения: Veland
  1. Ошибка возникает при попытке переназначить const, исправляется использование let вместо const.
  2. Для того чтобы права изменились во всех каналах, достаточно сделать перебор методом forEach.

let muteRole = message.guild.roles.cache.find(role => role.name === 'ssssss');

    if(!muteRole) {
        muteRole = await message.guild.roles.create({
            data: {
                name: "ssssss",
                color: "#514f48",
                permissions: []
            }
        })
        message.guild.channels.forEach(channel => {
            channel.overwritePermissions(muteRole, {
                SEND_MESSAGES: false,
                ADD_REACTIONS: false,
                SPEAK: false,
                CONNECT: false,
            })
        });
    }

→ Ссылка