У меня есть строка кода для несогласного бота, чтобы удалить определенную c именованную роль и добавить роль с именем "muted" на указанное c количество времени. По сути, сервер может иметь только 3 роли, одна из которых может выдавать команду, «нормальный» ранг с обычными разрешениями и затем «приглушенная» роль. и мой код специально удалил обычную роль и добавляет отключенную роль, чтобы у них не было никаких разрешений.
Ну, я добавил своего бота на другой сервер с более чем 3 ролями, я решил дать всем нормальную роль, а также сделать отключенную роль. когда я запускаю команду, она работает, но, поскольку у людей есть другие роли, она позволяет затем продолжать говорить, даже если приглушенная роль имеет главный приоритет.
У меня есть вопрос, есть ли какой-то код, в котором я можно просто удалить все свои роли и добавить приглушенную роль. и когда отключенный период закончится, отключенная роль будет удалена, а их предыдущие роли восстановлены? вот мой код ниже:
case 'mute':
if(!message.member.roles.cache.find(r => r.name === "Admin")) return message.channel.send('You dont have permissions to do that you clown')
let person = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[1]))
if(!person) return message.reply("User Doesn't Exist");
let mainrole = message.guild.roles.cache.find(role => role.name == "normal");
let muterole = message.guild.roles.cache.find(role => role.name == "muted");
if(!muterole) return message.reply("Role Doesn't Exist");
let time = args[2];
if(!time){
return message.reply("How Long?");
}
person.roles.remove(mainrole.id);
person.roles.add(muterole.id);
message.channel.send(`@${person.user.tag} has now been muted for ${ms(ms(time))}`);
setTimeout(function(){
person.roles.add(mainrole.id);
person.roles.remove(muterole.id);
message.channel.send(`@${person.user.tag} has now been unmuted`)
}, ms(time));
break;
case 'help':
const embed2 = new MessageEmbed()
.setTitle("How To Get Commands")
.setColor(0x00fff7)
.setDescription("Do /commands to get the list of commands");
message.author.send(embed2);
break;