MessageFilter: полный контроль над чатом вашего Minecraft-сервера
Любой администратор Minecraft-сервера рано или поздно сталкивается с хаосом в игровом чате. Плагины привата, экономики, антигриферской защиты и мини-игр наперебой шлют уведомления, половина из которых игрокам не нужна. Одни хотят убрать назойливые оповещения о входе, другие — перевести англоязычные реплики на русский, третьи — ограничить частоту повторяющихся предупреждений. MessageFilter — это легковесный Bukkit-плагин, который превращает поток бессистемных сообщений в аккуратную, управляемую систему.
Назначение и ключевая идея плагина
MessageFilter — это серверный инструмент, работающий на стыке фильтрации, локализации и модерации чата. Вместо того чтобы править конфиги десятков установленных плагинов по отдельности, администратор создаёт единый набор правил в одном месте. Плагин перехватывает исходящие сообщения до того, как они попадут в чат, и применяет к ним заданные действия: скрытие, замена текста или ограничение частоты появления.
Представьте ситуацию: экономический плагин каждые пять секунд транслирует в чат состояние рынка, а плагин защиты региона при каждой попытке сломать чужой блок выдаёт «You can't build here!». Чат превращается в свалку, игроки раздражаются. MessageFilter решает обе проблемы: первое сообщение можно полностью скрыть, второе — перевести на русский язык или показывать не чаще одного раза в 30 секунд. Всё это делается без единого изменения в конфигах исходных плагинов.
Основные возможности MessageFilter
Функционал плагина строится на трёх базовых действиях, которые можно комбинировать между собой:
- Скрытие сообщений — полное удаление нежелательных строк из чата. Полезно для спама от источников, которые нельзя отключить штатными средствами.
- Замена текста — трансформация сообщения в любой формат. Работает как универсальный переводчик для плагинов без встроенной локализации: английские реплики превращаются в русские, технические названия — в понятные игрокам формулировки.
- Кулдаун — ограничение частоты показа одинаковых сообщений. Например, предупреждение о запрете строительства будет появляться не чаще одного раза в заданный интервал, избавляя игрока от повторяющегося спама.
Плагин поддерживает гибкие методы сравнения строк: точное совпадение, поиск подстроки, проверка начала или конца строки, а также полноценные регулярные выражения (RegEx). Все правила хранятся в YAML-файлах внутри папки MessageFilter/rules. Администратор может редактировать их вручную через текстовый редактор или управлять через игровые команды — плагин адаптируется под любой стиль администрирования.
Как работают правила фильтрации
Каждое правило в MessageFilter описывается набором параметров: тип сравнения, маска входящего сообщения, текст замены и время кулдауна. Когда плагин перехватывает сообщение, он сверяет его с активными правилами и модифицирует вывод до отображения. Игрок видит уже обработанный текст.
Доступно пять типов сравнения:
- EQUAL — сравнение без учёта регистра. Сообщения «Aaaa Bbbb» и «aaaa bbbb» считаются идентичными.
- CONTAINS — проверка наличия подстроки в тексте сообщения.
- START — сообщение должно начинаться с указанного шаблона.
- END — сообщение должно заканчиваться заданной строкой.
- REGEX — регулярные выражения для сложных паттернов, например, для отлова всех сообщений о входе игроков.
В маске замены можно использовать плейсхолдеры %word1%, %word2% и так далее. Они автоматически подставляют соответствующие слова из оригинального сообщения. Это особенно удобно при переводе, когда нужно сохранить часть исходного текста — например, имя игрока или название локации.
Примеры конфигурации правил
Рассмотрим типовую структуру YAML-файла. Первое правило переводит сообщение плагина RoadProtector на русский язык:
roadprotector: type: EQUAL message-mask: '&3[RP] &cThis place is protected!' replace-to: '&6Здесь нельзя ломать и строить!' cooldown-time: '' use-formating: true
Второе правило полностью скрывает оповещения о входе игроков с помощью регулярного выражения:
removejoin: type: REGEX message-mask: '\w+ joined the server\.' replace-to: '' cooldown-time: '' use-formating: false
Третье правило ограничивает частоту показа предупреждения о запрете строительства пятью секундами:
annoying: type: EQUAL message-mask: 'You can\'t build here!' replace-to: '' cooldown-time: '5s' use-formating: false
Управление правилами через команды
Основная команда плагина — /msgfilter (доступны алиасы /mfilter и /filter). С её помощью можно создавать, изменять и удалять правила прямо в игре, не выходя из клиента:
/msgfilter add newrule— создать правило с идентификаторомnewrule./msgfilter set newrule type EQUAL— задать тип сравнения./msgfilter set newrule input &3[RP] &cThis place is protected!— указать входящую маску с цветовыми кодами./msgfilter set newrule output &6Здесь нельзя ломать и строить!— задать текст замены.
Для сбора сообщений в автоматическом режиме предусмотрена команда /msgfilter save. Она записывает все входящие строки в файл, что удобно при анализе логов или быстром создании правил на основе реального спама. Это особенно полезно на начальном этапе настройки, когда нужно понять, какие именно сообщения генерируют установленные плагины.
Установка и зависимости
MessageFilter для Minecraft требует предварительно установленный ProtocolLib — популярную библиотеку для работы с сетевыми пакетами. Без неё плагин не сможет перехватывать сообщения. Проверить работоспособность связки можно командой /msgfilter test. Если в ответ появляется «MessageFilter test failed!», необходимо обновить или переустановить ProtocolLib.
Плагин включает автоматическую проверку обновлений, которая раз в час обращается к репозиторию dev.bukkit.org. При желании эту функцию можно отключить, выставив параметр version-check: false в файле config.yml.
Права доступа
Для разграничения прав администраторов на сервере предусмотрены два узла:
messagefilter.config— доступ к командам управления правилами.messagefilter.test— разрешение на выполнение теста при входе игрока.
Первый узел выдаётся администраторам, второй — можно выдать модераторам или доверенным игрокам для диагностики.
Поддерживаемые версии и загрузчики
MessageFilter работает на серверах Bukkit и Spigot, поддерживая актуальные версии Minecraft. Плагин ориентирован на серверную сторону, поэтому устанавливать его нужно в папку plugins сервера. Для клиентской части никаких модификаций не требуется — фильтрация происходит на стороне сервера, и все игроки видят уже обработанный чат независимо от версии их клиента.
Как установить MessageFilter
Процесс установки сводится к нескольким шагам. Сначала необходимо скачать MessageFilter: полный контроль над чатом вашего Minecraft-сервера с официального ресурса или проверенного зеркала. Затем остановить сервер, поместить JAR-файл плагина в папку plugins и убедиться, что там же находится ProtocolLib. После запуска сервера плагин создаст структуру папок и файл конфигурации. Далее можно приступать к созданию правил через команды или редактирование YAML-файлов.
Для тех, кто активно экспериментирует со сборками модов на клиенте, стоит отметить: многие полезные модификации для фильтрации чата или интерфейса легко устанавливаются через современные лаунчеры, где можно скачать моды прямо из меню, не копаясь в файловой системе. Это особенно удобно, когда нужно быстро протестировать несколько вариантов настройки.
Заключение
MessageFilter: полный контроль над чатом вашего Minecraft-сервера — это незаменимый инструмент для администраторов, которые ценят порядок в игровом общении. Гибкие правила, поддержка регулярных выражений, кулдаун и возможность перевода делают его универсальным решением для любой серверной сборки. Настройка не требует глубоких знаний программирования: несколько команд или правка YAML-файла — и ваш сервер заговорит так, как нужно именно вам. Попробуйте MessageFilter, и вы забудете о спаме в чате навсегда.