Права для команд
Раздел Права ролей позволяет разрешать ролям отдельные административные команды бота, в том числе команды Discord вида /команда.
Например, можно разрешить модератору:
- временно запрещать отправку сообщений (включать локдаун) через
/antiraid lockdown; - управлять достижениями;
- просматривать состояние автомодерации;
- изменять настройки наград;
- выполнять отдельные действия staff-системы.
Выданное здесь право:
- не изменяет разрешения роли в Discord;
- не назначает участника сотрудником staff-системы;
- не повышает его staff-ранг;
- не выдаёт самому боту недостающие разрешения;
- не включает выключенные модули;
- не открывает веб-панель — этим управляет доступ к панели.
Оно разрешает участнику использовать конкретную команду, если остальные ограничения этой команды соблюдены.
Как открыть и настроить
Откройте страницу «Права ролей».
Изменять настройки могут:
- владелец сервера;
- участники с разрешением Discord Администратор;
- участники с разрешением Управлять сервером.
Чтобы выдать права роли:
- В поле Добавить роль выберите роль сервера.
- На появившейся карточке включите необходимые права.
- Либо откройте меню Применить пресет и выберите готовый набор прав (пресет).
- При применении пресета выберите режим Добавить или Заменить.
Отдельной кнопки сохранения нет. Каждое изменение отправляется на сервер сразу.
Если снять у роли все права, после обновления страницы её карточка исчезнет. При необходимости роль можно снова выбрать через поле Добавить роль.
У системы нет общего переключателя.
Какие роли можно выбрать
Панель не показывает:
- роль
@everyone; - роли, управляемые ботами;
- роли, управляемые интеграциями.
Однако команда /perm grant не использует такой фильтр.
Важно: внимательно проверяйте роль при использовании
/perm grant. Если выдать право*роли@everyone, доступ ко всем командам, защищённым этой системой, получат все участники сервера.
Три уровня проверки доступа
Для успешного запуска команды может одновременно проверяться несколько независимых настроек.
1. Состояние модуля
Переключатель модуля определяет, доступна ли группа команд целиком.
Например, команды /antiraid зависят от общего модуля Модерация.
Если модуль выключен, отдельное право не позволит запустить команду.
Даже владелец сервера и участник с разрешением Администратор не могут обойти выключенный модуль.
2. Право роли на отдельную команду
Право роли определяет, может ли участник использовать конкретную административную команду.
Например, Включение локдауна (antiraid.lockdown) разрешает /antiraid lockdown, но не другие команды антирейда. Значение в скобках — внутренний ключ права: его нужно выбрать или указать при выдаче права через /perm grant.
Обычному участнику достаточно иметь хотя бы одну роль с нужным правом.
Владелец сервера и участники с разрешением Discord Администратор проходят эту проверку автоматически.
3. Настройки отдельной команды
На странице «Команды» можно дополнительно:
- полностью выключить команду;
- ограничить её определёнными ролями;
- ограничить её каналами;
- установить задержку между вызовами.
Права из раздела Права ролей не отменяют эти ограничения.
Владелец сервера обходит ограничения страницы Команды, но не может обойти выключенный модуль.
Участники с разрешением Администратор по умолчанию также обходят ограничения отдельных команд.
Чтобы применять настройки и к администраторам, включите на карточке команды параметр Применять и к администраторам.
При тестировании ограничений не используйте собственный аккаунт с разрешением Администратор, если параметр Применять и к администраторам выключен. Команда будет доступна независимо от заданных ограничений.
Разрешение «Управлять сервером»
Разрешение Discord Управлять сервером открывает доступ к настройкам веб-панели.
Оно само по себе не позволяет использовать защищённые команды Discord.
Если такой администратор:
- не является владельцем сервера;
- не имеет разрешения Администратор;
его роли всё равно потребуется отдельное право.
Основные настройки
| Параметр | Где изменяется | По умолчанию | Описание |
|---|---|---|---|
| Роль | Поле Добавить роль | Не выбрана | Определяет, какой роли принадлежат права. Участнику достаточно одной подходящей роли. |
| Отдельное право | Переключатель на карточке роли, /perm grant, /perm revoke | Выключено | Разрешает только связанные с ним команды. |
Универсальное право * | Отдельный переключатель на карточке роли или /perm grant | Выключено | Даёт все поддерживаемые этой системой права. Не включает модули и не отменяет настройки страницы Команды. |
| Пресет | Меню Применить пресет или /perm preset | Не применён | Добавляет роли готовый набор прав. Пресет не является staff-рангом. |
| Режим пресета | Добавить или Заменить | Добавить | Определяет, будут ли сохранены старые права роли. |
Режим «Добавить»
Новые права объединяются с уже выданными.
Существующие ручные права и * сохраняются.
Режим «Заменить»
Сначала удаляются все ранее выданные роли права, включая:
- ручные права;
- права из других пресетов;
- универсальное право
*.
После этого записывается только новый набор.
Как складываются права нескольких ролей
Отсутствие права у одной роли не отменяет разрешение, выданное другой роли.
Если участник имеет несколько ролей, права всех его ролей объединяются.
Например:
- первая роль не имеет
antiraid.lockdown; - вторая роль имеет
antiraid.lockdown.
Команда будет разрешена.
Снятие права с одной роли не поможет, пока другая роль участника продолжает его выдавать.
Какие права действительно используются
Ниже перечислены права, которые текущая версия бота действительно проверяет.
| Право | Внутренний ключ | Доступные команды |
|---|---|---|
| Выдача выговоров | staff.warn | /staff mod warn; также открывает просмотр предупреждений и истории через /staff mod warns и history |
| Снятие выговоров | staff.unwarn | /staff mod unwarn, /staff mod bulkunwarn; также открывает /staff mod warns и history |
| Управление модераторами | staff.add_mod | /staff mod add, /staff mod delete |
| Управление администраторами | staff.add_admin | /staff admin add, /staff admin delete |
| Настройка антирейда | antiraid.config | /antiraid on, /antiraid off, /antiraid threshold, /antiraid min-age, /antiraid mode, /antiraid quarantine-role, /antiraid status |
| Включение локдауна | antiraid.lockdown | /antiraid lockdown |
| Снятие локдауна | antiraid.unlock | /antiraid unlock |
| Просмотр состояния автомодерации | automod.config | /automod status |
| Настройка журналов | logs.config | Команды группы /log |
| Управление сезонами кланов | season.config | /clan_season enable, /clan_season disable, /clan_season setreward, /clan_season force_end |
| Управление достижениями | achievements.manage | /achievements admin create, /achievements admin delete, /achievements admin toggle, /achievements admin grant |
| Настройка наград и активности | reward.set | /shop setchannel, /shop delete |
| Настройка наград и активности | reward.set | /reward reset, /reward setrank, /reward set, /reward daily-range, /reward weekly-range |
| Настройка наград и активности | reward.set | /activity setroles, /activity delroles, /activity set_channel, /activity show, /activity addrole, /activity remrole, /activity drop, /activity back |
| Начисление очков | reward.add | /activity reward add |
| Списание очков | reward.remove | /activity reward remove |
| Настройка ролей лидеров | reward.set_ranks | /activity setroles — команда принимает и reward.set, и reward.set_ranks |
| Исключение участников | staff.kick | /kick — рядом с разрешением Discord Исключать участников |
| Блокировка участников | staff.ban | r!ban — рядом с разрешением Discord Блокировать участников |
| Выдача мута | staff.timeout | r!mute — рядом с разрешениями Модерировать участников и Управлять сообщениями |
| Закрытие тикетов | tickets.close | /ticket close и кнопка Закрыть в тикете |
| Создание клана | clan.create | /clan create — позволяет создать клан, даже когда создание кланов на сервере запрещено |
| Удаление клана | clan.delete | /clan delete — без требования быть лидером клана |
| Управление рангами клана | clan.manage | /clan promote, /clan demote |
| Приглашение в клан | clan.invite | /clan invite — без требования ранга Офицера |
| Исключение из клана | clan.kick | /clan kick |
| Передача лидерства клана | clan.transfer | /clan transfer — без требования быть лидером клана |
Просмотр состояния автомодерации
Право Просмотр состояния автомодерации (automod.config) поддерживается командой /automod status, но сейчас не отображается среди переключателей веб-панели.
Выдать или снять его можно командами:
/perm grant
/perm revoke
Права, которые пока не работают
Все права каталога подключены к реальным проверкам команд.
Отдельного /timeout у бота нет: тайм-аут выдаётся командой r!mute, и право staff.timeout относится именно к ней.
Как разрешить команду без стандартного разрешения Discord
Некоторые команды можно отдельно разрешить роли, даже если у её участников нет соответствующего разрешения Discord, staff-ранга или ранга в клане. Для доступа достаточно любого из условий в таблице: прежнее разрешение продолжает работать, а отдельно выданное право даёт ещё один способ получить доступ.
| Команда | Доступ без отдельного права | Какое право можно выдать |
|---|---|---|
/kick | Разрешение Discord Исключать участников | staff.kick |
r!ban | Разрешение Discord Блокировать участников | staff.ban |
r!mute | Модерировать участников или Управлять сообщениями | staff.timeout |
/ticket close, кнопка Закрыть | Автор тикета либо поддержка (staff-ранг, tickets.work) | tickets.close |
/clan kick, /clan promote, /clan demote, /clan transfer, /clan invite, /clan delete | Ранг в клане (Офицер, Заместитель, Лидер) | clan.kick, clan.manage, clan.transfer, clan.invite, clan.delete |
Права роли по-прежнему не заменяют разрешения самого бота и не отменяют иерархию ролей: автор команды должен находиться выше цели по ролям, а роль бота — выше роли участника.
Клановые права и чужие кланы
Клановые команды работают с кланом автора. Отдельное право этого не меняет, но снимает требование к рангу:
- если держатель права состоит в клане, команда работает с его кланом, а требование ранга (Офицер, Заместитель, Лидер) не проверяется;
- если он не состоит ни в одном клане, клан определяется по указанному участнику — так сотрудник модерирует чужой клан, не вступая в него. Это работает для команд с параметром участника:
/clan kick,/clan promote,/clan demote,/clan transfer; - клановая иерархия к такому сотруднику не применяется: он может исключить или понизить даже Заместителя;
/clan inviteвсегда приглашает в клан автора, поэтому право здесь только снимает требование ранга Офицера;clan.createпозволяет обойти запрет на создание кланов: участник с этим правом создаёт клан, даже когда создание кланов на сервере запрещено.
Рядового участника клана без права всё это не касается — для него проверки ранга и лидерства остались прежними.
Команда /clan manage delete (принудительное удаление чужого клана по ID) отдельные права не проверяет: она закрыта разрешением Discord Администратор на стороне самого Discord.
Staff-команды и иерархия
Отдельное право staff-системы разрешает выполнить действие, но после этого бот дополнительно проверяет положение автора и цели.
Если автор состоит в staff-системе, его staff-уровень должен быть строго выше уровня цели.
Если автор не состоит в staff-системе, его Discord-роль должна находиться выше роли цели.
Право staff.add_admin не входит ни в один пресет. Его необходимо выдавать отдельно.
Пресеты
Пресет — готовый набор прав для типовой роли.
Он:
- не изменяет Discord-разрешения роли;
- не выдаёт разрешение Администратор;
- не назначает staff-ранг;
- не гарантирует доступ к выключенным модулям.
Пресеты веб-панели
| Пресет | Права |
|---|---|
Модератор (moderator) | staff.warn, staff.unwarn, staff.timeout, antiraid.lockdown, tickets.work, tickets.close, tickets.notes |
Администратор (admin) | staff.warn, staff.unwarn, staff.kick, staff.ban, staff.timeout, staff.add_mod, все три права антирейда, logs.config, все четыре права тикетов |
Поддержка (support) | tickets.work, tickets.manage, tickets.notes |
Управление кланами (clan_master) | Шесть клановых прав и season.config |
Управление экономикой (economy_admin) | reward.add, reward.remove, reward.set, reward.set_ranks, achievements.manage |
Различия между панелью и /perm preset
Наборы в веб-панели и команде /perm preset почти совпадают.
- Набор
admin, выданный через/perm preset, дополнительно добавляетautomod.config. Это право в переключателях панели не показывается, но командой/automod statusпроверяется. - Остальные пресеты (
moderator,support,clan_master,economy_admin) совпадают. - Команда
/perm presetвсегда только добавляет права. - Через команду
/perm presetнельзя применить режим Заменить.
Отдельное право tickets.close в пресетах избыточно рядом с tickets.work: закрывать тикеты умеет и держатель tickets.work. Смысл выдавать его отдельно есть тогда, когда роли нужно доверить только закрытие — без очереди, взятия в работу и добавления участников.
После применения пресета рекомендуется:
- открыть карточку роли;
- проверить фактически выданные права;
- протестировать нужную команду с отдельной ролью без разрешения Администратор.
Команды управления правами
| Команда | Параметры | Описание |
|---|---|---|
/perm grant | role, permission | Выдаёт роли выбранное право или все поддерживаемые права (*). Повторная выдача не создаёт дубликат. |
/perm revoke | role, permission | Снимает одно конкретное право. |
/perm list | Необязательный параметр role | Показывает права выбранной роли или общую сводку по серверу. |
/perm preset | role, preset | Добавляет к существующим правам пресет moderator, admin, support, clan_master или economy_admin. |
Ответы команд /perm видит только вызвавший пользователь.
Общая сводка /perm list показывает не больше 25 ролей.
Чтобы проверить роль, которая не попала в список, укажите её отдельно в параметре role.
Кто может использовать /perm
Команды группы /perm доступны только участникам, которым Discord разрешает управлять административными командами бота вида /команда.
Права, выданные через эту же систему, не дают доступ к /perm.
Даже универсальное право * не открывает эти команды, поскольку группа /perm не использует проверку прав роли.
Как бот проверяет доступ
При вызове защищённой команды бот получает актуальный список ролей участника.
Проверка прав роли считается пройденной, если выполняется хотя бы одно условие:
- участник является владельцем сервера;
- у участника есть разрешение Discord Администратор;
- хотя бы одна его роль имеет право на нужную команду;
- хотя бы одна его роль имеет право
*.
Изменения, выполненные в панели или через /perm, применяются к следующим вызовам команд.
Перезапуск бота не требуется.
Что происходит при снятии или удалении роли
Если снять роль с участника в Discord, он сразу потеряет все права, которые принадлежали этой роли.
Если удалить саму роль с сервера, запись с её правами может остаться в базе данных.
Однако использовать эти права никто не сможет, поскольку роли больше не существует.
Права пользователя и права бота
Отдельное право разрешает участнику запросить действие, но не гарантирует, что бот сможет его выполнить.
Например, для:
- кика;
- бана;
- тайм-аута;
- выдачи ролей;
- изменения разрешений каналов;
самому боту всё равно нужны соответствующие Discord-разрешения.
Кроме того, роль бота должна находиться выше роли участника или управляемой роли.
Универсальное право
Доступ ко всем поддерживаемым правам выдаётся одним универсальным правом. Оно записывается точно так:
*
Значения вида:
antiraid.*
staff.*
не поддерживаются.
Право *:
- даёт доступ ко всем правам, поддерживаемым этой системой;
- не включает выключенные модули;
- не отменяет ограничения страницы Команды;
- не выдаёт Discord-разрешения пользователю;
- не выдаёт Discord-разрешения боту;
- не открывает команды
/perm.
Ограничения
Нет запрещающих прав
Система поддерживает только разрешение доступа.
Нельзя создать правило, которое явно запрещает команду одной роли и перекрывает разрешение другой роли.
Владелец и администраторы
Владелец сервера и участники с разрешением Discord Администратор могут использовать защищённые команды без отдельно выданных прав.
Создать для них запрет в этом разделе нельзя.
Каждое право разрешает только свои команды
Права не распространяются автоматически на соседние команды.
Например:
antiraid.configне разрешает/antiraid lockdown;antiraid.lockdownне разрешает/antiraid unlock.
Несоответствие каталогов
Список прав в панели и список прав /perm расходятся в одном пункте: automod.config есть только в /perm и в наборе admin команды /perm preset, среди переключателей панели его нет.
Все остальные права каталога панель показывает, а команды проверяют. Полный перечень — в таблице Какие права действительно используются.
Ограничения модулей и команд
Права ролей:
- не включают выключенные модули;
- не отменяют ограничения страницы Команды;
- не заменяют обязательные разрешения Discord;
- не гарантируют достаточную позицию роли бота.
Режим «Заменить»
Режим Заменить удаляет все старые права выбранной роли, включая:
*;- ручные права;
- права, выданные предыдущими пресетами.
Перед применением этого режима проверьте текущий список прав роли.