Skip to main content
Гайды
ГайдыRolesCommunity

Автоматическая роль в голосовом канале Discord: зачем она нужна и на что обратить внимание

Discord сам не умеет выдавать роль, пока человек находится в голосовом канале. Бот умеет. Зачем нужны голосовые роли, как их настроить и три ошибки, которые делают в начале.

Опубликовано автор AlphaCloud4 мин чтения

Рано или поздно этот вопрос возникает почти на каждом крупном сервере: можно ли автоматически давать людям роль, пока они в голосовом канале? Сам Discord так не умеет. Роли и права каналов не знают состояния вроде «сейчас сидит в голосовом канале». Бот умеет, потому что видит, кто заходит в канал, переходит в другой или выходит.

В AlphaCloud этот модуль называется «Голосовые роли». Он появился из двух предложений на нашей доске идей, и сценарии за ними оказались разнообразнее, чем мы ожидали.

Зачем нужны голосовые роли

Кто говорит, тот наверху. Роль «В голосовом», которая отображается в списке участников отдельно, с первого взгляда показывает, где что-то происходит. Особенно на серверах, где днём тихо, это приводит в канал людей, которые иначе даже не заглянули бы.

Канал только для тех, кто в голосовом. В Discord, конечно, есть текстовый чат в каждом голосовом канале, но иногда нужен отдельный канал: для музыкальных команд, ссылок на текущий раунд или спойлеров к фильму, который все сейчас смотрят. Разреши просматривать канал только голосовой роли, и он будет появляться, когда люди заходят, и исчезать, когда они уходят.

Зоны со своей ролью. Роли для отдельного канала или целой категории разделяют зоны. Кто сидит в категории «Gaming», получает роль «Gaming» и видит подходящий текстовый канал с кодами лобби, а кто сидит в «Учебной комнате», видит канал с конспектами.

Кто в эфире, тот заметен. Отдельные роли для камеры, стрима или и того и другого показывают, кто сейчас стримит. На комьюнити-серверах с совместными просмотрами или игровыми вечерами это часто и есть причина вообще заглянуть.

Настройка

Техническая часть делается быстро:

  1. Создай роли в Discord, ниже самой высокой роли бота
  2. В панели в разделе Модерация включи модуль Голосовые роли
  3. Задай Роль в голосовом канале, а по необходимости ещё Роли для канала или категории и роли в разделе Камера и стрим
  4. Сохрани, зайди в голосовой канал и проверь, появилась ли роль

Кто уже сидит в голосовом канале в момент сохранения, получает свои роли в течение нескольких секунд. Все поля и лимиты есть в документации по Голосовым ролям.

Три ошибки в начале

Взять роль, которая уже есть. Бот полностью управляет заданными ролями: кто не находится в подходящем канале, теряет их. Если выбрать роль, которую ты выдаёшь и вручную или через другой модуль, она пропадёт у всех, кто в этот момент не в голосовом. Поэтому всегда используй для голосовых ролей отдельные роли.

Забыть про AFK-канал. Кто попадает в AFK-канал, технически находится в голосовом и получает роль. Это редко то, что нужно, особенно если роль стоит наверху списка участников. Добавь AFK-канал и такие зоны, как временные каналы, в Исключённые каналы и категории. Собственные правила для канала и роли для камеры и стрима там всё равно продолжают действовать.

Повесить права не туда. Голосовая роль должна открывать канал, а не раздавать права по всему серверу. Не давай ей дополнительных прав на уровне сервера, разреши только «Просматривать канал» в нужном канале. Тогда ничего не сломается, если кто-то сохранит роль на несколько секунд дольше, чем ожидалось.

Что происходит в фоне

Некоторые решения мы приняли осознанно, потому что в повседневной работе они имеют значение.

Истина в голосовом канале. Бот не запоминает, кто сидит в голосовом, а ориентируется на то, что сообщает Discord. Когда он перезапускается, например ради обновления, он один раз проходит по всем, кто сидит в голосовом или имеет одну из ролей, и приводит роли в соответствие с текущим состоянием. Обновление не должно оставлять кому-то роль, которой у него больше быть не должно.

Только одна роль для камеры и стрима одновременно. Кто стримит, а потом включает камеру, переходит с «Только стрим» на «Камера и стрим». Две роли одновременно лишь дважды показали бы в списке участников то, что уже говорит одна.

Выключенный микрофон не считается. Выключение микрофона или звука ничего не меняет в ролях. Иначе бот раздавал и забирал бы роли при каждом коротком отключении микрофона, а список участников постоянно прыгал бы.

Выключение не убирает за собой. Если ты выключишь модуль или уберёшь роль из настроек, участники, у которых она есть в этот момент, сохранят её. Сними её один раз вручную, быстрее всего через роль в настройках сервера Discord.

Free и Premium

Роль для любого голосового канала, до 50 исключений и три роли для камеры и стрима бесплатны. Правил для канала или категории без Premium доступно 3, с Premium 25. Большинству серверов хватает трёх: по одному на каждую зону, где действительно что-то происходит.

«Голосовые роли» ты найдёшь в панели в разделе Модерация. Если ты пользуешься временными голосовыми каналами, дальше стоит прочитать наше руководство по каналам join to create.

Другие статьи