У меня на боте разногласий есть команда отключения звука, которая при присвоении имени пользователя дает им роль Muted
.Это создает эту роль, но проблема, с которой я сталкиваюсь, заключается в том, что она не меняет разрешения в роли.У моего бота есть все необходимые разрешения, чтобы сделать что-то подобное.Вот код, который я использую:
let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if(!tomute) return message.reply("Usage: !mute <@user>");
if(tomute.hasPermission("MANAGE_MESSAGES")) return message.reply("Can't mute them!");
let muterole = message.guild.roles.find(`name`, "Muted");
if(!muterole){
try{
muterole = await message.guild.createRole({
name: "Muted",
color: "#000000",
permissions:[]
})
message.guild.channels.forEach(async (channel, id) => {
await channel.overwritePermissions(muterole, {
SEND_MESSAGES: false,
ADD_REACTIONS: false,
SEND_TTS_MESSAGES: false,
ATTACH_FILES: false,
SPEAK: false
});
});
}catch(e){
console.log(e.stack);
}
}
await(tomute.addRole(muterole.id));
message.reply(`<@${tomute.id}> has been muted`);
tomute.addRole(muterole.id).then(() => {
message.delete()
tomute.send(`You have been muted in ${message.guild.name}.`)
})