Предполагая, что у вас настроен базовый c обработчик команд, вот некоторые базовые c функциональные возможности, которые вы можете использовать:
const member = message.mentions.members.first()
if (!member) return;
member.roles.add('<muted role ID>')
И для команды включения звука вы можете сделать то же самое :
member.roles.remove('<muted role ID>')
Использование команды mute приведет к удалению всех ролей у этого человека ... Как только вы включите микрофон, он получит обратно все свои роли ...
Это будет очень сложно выполнить , поскольку нет простого способа сохранить, какие роли были у участника до того, как они были отключены. Вместо этого вы можете просто установить для роли Muted
более высокий приоритет, чем для других.