Изменение прав всех каналов 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
→ Ссылка
- Ошибка возникает при попытке переназначить const, исправляется использование let вместо const.
- Для того чтобы права изменились во всех каналах, достаточно сделать перебор методом 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,
})
});
}