Модерация
Ручные наказания, авто-наказания по варнам и автомод-фильтры — как Маяри следит за порядком
Модерация в Маяри — это три независимых слоя, которые работают вместе, а не вместо друг друга: ручные команды модератора, автоматическая лестница наказаний по накопленным варнам и автомодерация — правила AutoMod Discord плюс фильтры самой Маяри. Один мастер-тумблер в шапке раздела гасит всё сразу: ручные команды, автомод (фильтры Маяри и правила Discord) и защиту от новорегов.
TL;DR для нетерпеливых. /бан, /кик, /мут, /варн — ручные команды с окном подтверждения. Накопил варны — сработает автонаказание по настроенной лестнице. Правила AutoMod Discord блокируют мат, спам и инвайты ещё до публикации, а фильтры Маяри ловят капс, залго и повторы. Все срабатывания автомода пишутся в один канал лога модерации.
🛡️ Ручные команды
| Команда | Что делает | Право Discord |
|---|---|---|
/бан | Блокировка + опциональное удаление сообщений за период (от часа до 7 дней) | Ban Members |
/разбан | Снятие серверного бана по ID пользователя с подтверждением | Ban Members |
/кик | Исключение с сервера | Kick Members |
/мут | Тайм-аут (от 60 секунд до 1 недели) | Moderate Members |
/варн | Предупреждение с причиной и до 3 скриншотов-доказательств | Moderate Members |
/варн-лист | Просмотр предупреждений — свои может смотреть любой, чужие только с правами модерации | — |
/очистка | Удаление 1–100 последних сообщений в канале, опционально только от одного автора | Manage Messages |
Каждое наказание — с окном подтверждения. Перед применением Маяри показывает карточку с целью, причиной и параметрами (например, период удаления сообщений при бане можно поменять прямо в окне) и ждёт явного клика. Наказанному заранее уходит анонимное личное сообщение с причиной — до того, как действие применится.
Скриншоты-доказательства к /варн перезаливаются в собственное хранилище (Cloudflare R2) сразу при выдаче — оригинальные ссылки Discord на вложения протухают через некоторое время, а R2-копии остаются доступны всегда.
Иерархия ролей проверяется у всех наказаний (/бан, /кик, /мут, /варн) ещё до окна подтверждения: нельзя наказать себя, Маяри и владельца сервера, а также того, чья роль выше или равна вашей (кроме владельца сервера). Если роль Маяри ниже роли участника, вы сразу увидите понятную причину — личное сообщение «вы заблокированы» в этом случае не уйдёт.
🔓 Как снять бан
Используйте /разбан пользователь:ID причина:Апелляция (английское имя — /unban). В текстовом варианте: m.unban ID Апелляция или m.разбан ID Апелляция; вместо m. подставьте префикс вашего сервера. Причина необязательна, максимум 400 символов. Текстовая команда также принимает упоминание пользователя.
ID можно скопировать через контекстное меню пользователя в Discord, включив режим разработчика в настройках. Забаненного пользователя уже нет среди участников, поэтому команда принимает ID строкой. Перед снятием бана Маяри покажет пользователя, ID и причину и предложит подтвердить действие или отменить его. На подтверждение есть 60 секунд, кнопки работают только для вызвавшего команду модератора.
Право Ban Members («Банить участников») требуется и модератору, и боту. Оно повторно проверяется после подтверждения. Если бан уже снят, Маяри сообщит об этом. Событие разбана попадает в журнал при включённых логах модерации; модератор и причина определяются по доступному аудит-логу Discord.
Разбан разрешает снова зайти по приглашению: автоматически участник на сервер не возвращается. Разбан не снимает варны и не восстанавливает удалённые сообщения. Уведомление о наказании в ЛС при разбане не отправляется.
📈 Авто-наказания по варнам
Каждый варн считается «активным» ограниченное время — по умолчанию 30 дней (настраивается, 1–30). Просроченные варны не пропадают из истории, но перестают учитываться при подсчёте.
Если своя лестница наказаний не настроена в панели, используется дефолтная:
| Активных варнов | Наказание |
|---|---|
| 3 | Тайм-аут на 1 час |
| 5 | Тайм-аут на 24 часа |
| 10 | Бан |
Правило срабатывает на точное совпадение количества, а не «от X и выше» — то есть на 4-м варне ничего не произойдёт, следующее наказание сработает ровно на 5-м. Если на одно и то же число варнов настроено сразу два правила — применяется более строгое (бан строже кика, кик строже таймаута).
Пользователь в любом случае получает личное сообщение с причиной варна, текущим количеством активных/всего предупреждений и (если сработало) применённым наказанием.
🤖 Фильтры на стороне бота
Живут внутри блока «Автомодерация», под правилами Discord — в подразделе «Дополнительно от Маяри». Здесь остались проверки, которые Discord выполнить не может: он сверяет текст со словами и паттернами, а тут нужно считать долю заглавных, количество спецсимволов и повторы.
Для каждого фильтра отдельно настраиваются исключения (каналы/роли/категории), реакция (удалить сообщение и/или наказать) и наказание при срабатывании.
| Фильтр | Что ловит | Порог по умолчанию |
|---|---|---|
| 🔁 Повторения | Один символ, повторённый подряд (ааааа) | Больше 5 подряд |
| 🔠 Капс | Слишком много ЗАГЛАВНЫХ букв в сообщении | 70% букв в верхнем регистре (минимум 5 буквенных символов) |
| 👾 Залго | «Глючный» текст из наложенных диакритических знаков | Больше 30 спецсимволов |
Инвайтов среди фильтров бота нет. Ссылки-приглашения блокирует правило «Приглашения» в AutoMod Discord — до отправки сообщения, а не после. Серверам, где раньше работал фильтр бота, правило Discord включено автоматически.
«Игнорировать» — это не «выключить». Если у фильтра включена детекция, но не задано ни удаление, ни наказание — Маяри специально ничего не делает и не считает сообщение обработанным, чтобы не сломать остальную цепочку обработки (XP, команды, ИИ-чат). Хочешь по-настоящему выключить фильтр — сними тумблер «включён», а не убирай реакции.
Срабатывания фильтров бота пишутся в канал лога модерации (настраивается в панели). Он общий с алертами правил Discord — подробнее ниже.
🛡️ AutoMod Discord
Маяри создаёт и держит в актуальном состоянии нативные правила AutoMod самого Discord (в списке правил сервера они называются «Mayari • …»).
Есть такие правила — нарушение блокируется до публикации: сообщение вообще не появляется в чате, никто его не видит, и работает это даже когда бот офлайн. Нет — остаётся только фильтр на стороне бота: сообщение сначала видят все, и лишь потом Маяри его удаляет, а на время рестарта бота остаётся дыра. Поэтому дешёвые и однозначные проверки логично отдать Discord, а контекстные (капс с учётом исключений, залго) — оставить боту.
| Правило | Что делает |
|---|---|
| 📕 Словари Discord | Встроенные списки: ругательства, сексуальный контент, оскорбления/слурсы |
| 📝 Запрещённые слова | Свой список слов и фраз (до 1000 записей) |
| 🚫 Исключения | Что считать нормальным — работает и для словарей Discord (до 100 записей) |
| 🌊 Антиспам | Спам-эвристика Discord: массовые рассылки и флуд |
| 📣 Лимит упоминаний | Сообщение с числом пингов больше заданного не пройдёт |
| 🔗 Приглашения | Любые discord.gg / discord.com/invite блокируются регекспом |
Реакция настраивается один раз на все правила: блокировать сообщение (с собственным текстом, который увидит автор), выдавать тайм-аут. Алерты о срабатываниях Discord отправляет в общий канал лога модерации — если он задан. Роли и каналы можно освободить от проверки целиком.
Нужно право «Управление сервером». Без него Discord не даёт боту трогать AutoMod, и панель честно покажет ошибку последней синхронизации. Правила пересобираются автоматически при сохранении настроек и при старте бота.
Маяри трогает только свои правила. Всё, что начинается с «Mayari • », приводится к настройкам панели — включая удаление, если вы выключили правило. Правила, созданные вами вручную, бот не читает и не меняет.
🛡️ Защита от новорегов
Работает на входе, а не на сообщениях: если аккаунту Discord меньше заданного возраста (в часах, днях или неделях), Маяри кикает или банит участника, при желании предупредив его в личных сообщениях. Роли из списка исключений проверку пропускают.
🔌 Мастер-тумблер
Тумблер в шапке раздела «Модерация» отключает всё разом: слэш- и префикс-команды модерации, фильтры бота, защиту от новорегов и нативные правила AutoMod (Маяри снимает свои правила «Mayari • …» с сервера и вернёт их, когда модерацию включат снова). Настройки и история варнов при этом сохраняются.
📋 Где что лежит
| Что | Куда пишется |
|---|---|
| Срабатывания фильтров бота | Канал лога модерации |
| Алерты правил AutoMod Discord | Тот же канал лога модерации |
| Баны, кики, таймауты | Раздел «Логи», категория «Модерация» (отдельный модуль со своим каналом) |
🛠️ Что настраивается в панели
Раздел «Модерация» в веб-панели разбит на четыре вкладки с одной общей кнопкой «Сохранить»:
- Обзор — схема «как это работает», карточки «что включено» (нажмите на карточку, чтобы перейти к настройке) и единый канал лога модерации;
- Варны — лестница наказаний, срок жизни варна и история нарушений (можно снять один варн или сбросить все);
- Автомод — правила Discord (словари, свои слова и исключения, антиспам, лимит упоминаний, приглашения, реакция и освобождения) и подраздел «Дополнительно от Маяри» с капсом, залго и повторами;
- Вход — защита от новорегов.
Мастер-тумблер в шапке страницы относится ко всем вкладкам сразу.
Куда дальше
- Экономика — если наказание связано с игровой экономикой (например, ограбление), там же лимиты и штрафы.
- Тэги конструктора сообщений — переменные для кастомных сообщений в других модулях.