Модуль для Discord

Временные роли

Не каждая роль должна оставаться навсегда.

Добавить бота бесплатно

Без прав администратора. Настройка в веб-панели.

Зачем это нужно

Доступ к турнирному каналу нужен на выходные, испытательный срок в команде длится две недели, приз из розыгрыша действует месяц. Выдать такую роль можно за секунды, а вот снять её забывают всегда. Через полгода половина сервера носит отметки, которые уже никто не может объяснить, а вместе с ними права, за которыми никто не следит. Роли на время переворачивают порядок: конец ты назначаешь в момент выдачи, и бот его соблюдает, без напоминаний, без списка в голове и без неловкого вопроса через два месяца.

Как это выглядит в жизни

Ты пишешь /temprole add, выбираешь участника, роль и срок из списка: 30 минут, несколько часов, дни, вплоть до 30 дней. Бот подтверждает прямо в канале, у всех на виду, когда роль закончится, так что об этом узнаёт и сам человек. Если нужен общий обзор, есть /temprole list: все действующие выдачи на этом сервере, каждая со своим обратным отсчётом, и видно это только тому, кто спросил. Каждые 30 секунд бот смотрит, чей срок вышел, снимает роль и сообщает об этом в канал журнала, если ты его задал. Если нужно закончить раньше, /temprole remove делает это сразу. В журнале аудита Discord при каждой выдаче остаётся, кто её сделал и на какой срок.

Команды этого модуля

  • /temprole

Что можно настроить

  • Временные роли ты назначаешь прямо в Discord с помощью команд /temprole (add = роль на время, list = показать активные, remove = удалить досрочно). Роль истекает автоматически. Здесь, в панели, ты настраиваешь только необязательный канал логов.
  • Канал логов (необязательно)

На что обратить внимание

Самая частая причина «не работает» кроется в иерархии ролей: бот выдаёт и снимает только те роли, что стоят в списке сервера ниже его собственной. Если нужная роль выше, он отказывает с пояснением и ничего не трогает. Второе: срок берётся из закрытого списка, свободного ввода нет. Нужны 45 минут, возьми час и заверши раньше. Третье: повторная выдача той же роли тому же человеку заменяет прежний срок, то есть часы стартуют заново, а не складываются. Четвёртое: выключение модуля в панели блокирует только команды; уже выданные роли всё равно истекут, чтобы никто случайно не оставил себе навсегда то, что было временным. Учти ещё, что /temprole list показывает не больше 25 записей: если их больше, ты увидишь только начало. И задай канал журнала, пусть он и необязательный: иначе кто-то теряет доступ посреди недели, а в команде никто не знает почему.

Как работает модуль

Уведомляет, когда временная роль истекает.

Настройка в три шага

  1. Проверь в панели, что модуль «Временные роли» включён; переключатель стоит так по умолчанию.
  2. Подними роль бота выше всех ролей, которые он должен выдавать на время.
  3. При желании укажи канал журнала, чтобы команда видела каждое истечение срока.
  4. Выдай первую роль через /temprole add и проверь в /temprole list, что обратный отсчёт идёт.

Частые вопросы

Да, время истечения хранится в базе данных, а не в оперативной памяти. После перезапуска проверка каждые 30 секунд снова берётся за работу. То, что истекло бы за это время, догоняет первый же проход.

Нет, ты выбираешь из фиксированного списка от 30 минут до 30 дней. Свободного ввода нет, поэтому опечатка во времени невозможна. Если нужно что-то среднее, возьми ступень выше и заверши раньше через /temprole remove.

Запись останется до своего срока. Потом бот попробует снять роль, которой уже ни у кого нет: это пройдёт без последствий, а строка исчезнет. Чище использовать /temprole remove: тогда роль и запись уходят вместе.

Команда завязана на право Discord «Управление ролями»; по умолчанию её видят только участники с этим правом. Кроме того, роль бота должна стоять выше целевой роли. И то и другое настраивается в Discord, а не в панели.

Переживут ли сроки перезапуск бота?

Да, время истечения хранится в базе данных, а не в оперативной памяти. После перезапуска проверка каждые 30 секунд снова берётся за работу. То, что истекло бы за это время, догоняет первый же проход.

Можно указать свой срок, например 45 минут?

Нет, ты выбираешь из фиксированного списка от 30 минут до 30 дней. Свободного ввода нет, поэтому опечатка во времени невозможна. Если нужно что-то среднее, возьми ступень выше и заверши раньше через /temprole remove.

А если роль снимут вручную?

Запись останется до своего срока. Потом бот попробует снять роль, которой уже ни у кого нет: это пройдёт без последствий, а строка исчезнет. Чище использовать /temprole remove: тогда роль и запись уходят вместе.

Кому можно выдавать временные роли?

Команда завязана на право Discord «Управление ролями»; по умолчанию её видят только участники с этим правом. Кроме того, роль бота должна стоять выше целевой роли. И то и другое настраивается в Discord, а не в панели.