ProtocolStringReplacer - замена любых сообщений на сервере
ProtocolStringReplacer - плагин для Paper, Spigot и Folia, который меняет любой текст на сервере через перехват пакетов. Чат, табло, предметы, книги, таблички - всё под контролем без вмешательства в работу других плагинов.
ProtocolStringReplacer (или просто PSR) - серверный плагин для Майнкрафт, который переписывает любые сообщения, уходящие от сервера к игроку. Работает он на уровне сетевых пакетов, так что не трогает саму серверную логику и не конфликтует с другими плагинами. Хотите перевести все сообщения на русский, спрятать рекламные строки чужого плагина или вообще вырезать часть текста из чата? Это как раз для вас.
По сути это универсальный фильтр и переклейка текста для тех, кто устал вручную лезть в конфиги каждого плагина отдельно. Админам серверов, администрации больших проектов и владельцам локальных серверов для друзей это экономит часы возни.
Зачем нужен ProtocolStringReplacer
В ванильном Minecraft и на серверах с кучей плагинов сообщения приходят из десятков источников: ядро, плагины экономики, чат-менеджеры, античиты, кастомные ивенты. Менять их по отдельности - боль. PSR перехватывает исходящие пакеты и применяет ваши правила замены ко всему сразу.
При этом сам сервер понятия не имеет, что вы что-то меняете. Оригинальный пакет обрабатывается как обычно, а замена происходит только на пути к клиенту. Никакого роста нагрузки на канал - замены идут по уже готовым данным.
Что умеет плагин
Список внушительный, вот ключевое:
- Правит чат, сообщения смерти, экран кика и дисконнекта
- Меняет табло (scoreboard), тексты боссбара, заголовки окон и title-сообщения
- Редактирует предметы: DisplayName, Lore и даже полный NBT
- Работает с книгами - содержимое и автор
- Правит таблички (4 или 8 строк) и их NBT
- Переписывает имена сущностей и строки таб-комплита
- Редактирует консольные сообщения сервера
- Умеет редактировать ChatPreview Component для версий 1.19.0-1.19.2
- Может конвертировать пакеты PLAYER_CHAT в SYSTEM_CHAT - полезно для корректной работы замен на 1.19 (правда, тогда клиент не видит, кто именно отправил сообщение, и репорт через чат не сработает)
- Позволяет не только заменять строки, но и полностью блокировать пакет
- Поддерживает Json, причём бережно - hover-события и click-события не ломаются
- Фильтры по локали клиента, пермишенам и куче других параметров
- Hot-load и hot-unload конфигов прямо в игре
За скорость отвечает алгоритм Aho-Corasick - один из самых быстрых для поиска и замены подстрок. На практике это значит, что даже сотни правил не превратят обработку пакетов в лаг-машину.
Команды
/psr help- список всех команд/psr edit- редактор конфигов прямо в игре/psr parse- тест замены строк/psr capture- перехват содержимого пакетов (удобно, чтобы скопировать оригинальный текст и уже потом составить правило)/psr reload- перезагрузка конфигов
Права (permissions)
protocolstringreplacer.command.edit- доступ к командам редактированияprotocolstringreplacer.command.parse- доступ к тестированию заменprotocolstringreplacer.command.reload- доступ к перезагрузкеprotocolstringreplacer.command.capture- доступ к перехвату пакетовprotocolstringreplacer.feature.usermetacache- восстанавливает оригинальный ItemStack при получении пакета от игрока, чтобы избежать ошибок в креативеprotocolstringreplacer.feature.usermetacache.noncreative- то же самое, но для других режимов игры (помогает, если другие плагины конфликтуют с кэшем)
Совместимость и требования
PSR работает на Paper, Spigot, Purpur и Folia. Заявленная поддержка версий Minecraft - от 1.8.8-1.8.9 вплоть до 1.21-1.21.6, а основная нативная версия - 1.21. Актуальный релиз на момент обзора - 3.2.4, в нём добавили поддержку hover-информации у предметов для Minecraft 1.20.5+. Лицензия GPL-3.0-only, то есть полностью открытый и бесплатный проект. Автор заявляет планы на PSR v4.
Для установки понадобится NBT-API. На странице Spigot дополнительно указаны ProtocolLib 4.4.0+ и опционально PlaceholderAPI 2.10.7+.
Важный нюанс с цветами
В ReplacerConfig используйте символ § (ванильный символ цвета Minecraft), а не & (буккитовский). То есть §3§l, а не &3&l. На этом спотыкаются почти все новички, потому что привыкаешь к & из Bukkit-конфигов, а тут он не сработает. Проверено - забывается легко, а потом сидишь и думаешь, почему цвет не применяется.
Практические советы
Совет по кэшу предметов: если у вас есть плагины, которые массово редактируют инвентари (кейсы, крафт-гуи, кастомные меню), включайте usermetacache - иначе возможны рассинхроны в креативе. Для остальных режимов используйте noncreative-версию.
Ещё момент: если хотите просто спрятать какой-то надоедливый текст (рекламу чужого плагина, лишние сообщения), не пишите правило замены - заблокируйте пакет целиком. Иногда это чище, чем пытаться подменить строку на пустую. Правда, аккуратно с блокировкой системных пакетов - можно случайно отрезать что-то нужное.
Конфиг примера лежит внутри jar и создаётся при первом запуске. Документации отдельной вики нет - все пояснения в комментариях к Config.yml и Replacers/Example.yml. Комментарии там реально подробные, отвечают почти на все вопросы. Если что-то осталось неясным, язык для обсуждения - английский или китайский.
Если сравнивать с альтернативами, PSR - прямой конкурент MessageFilter, Any Message Filter и Console Spam Fix, но за счёт перехвата пакетов работает гибче: правит вообще всё, что уходит клиенту, а не только чат. Для больших проектов это по факту must-have инструмент.
По жанру это чисто технический utility-плагин для управленцев серверов, а не контентный мод вроде хорроров или PvP-паков. Но если вы держите публичный сервер, локализуете его или воюете с мусорными сообщениями от чужих плагинов - без таких штук никуда.
Скачать ProtocolStringReplacer можно для Minecraft 1.8.8-1.21.6 на Paper, Spigot и Folia. Плагин ставится на сервер, игрокам ничего докачивать не нужно - всё работает прозрачно на их стороне.
Сервер для плагина ProtocolStringReplacer - замена любых сообщений на сервере - как у профи
Плагин ProtocolStringReplacer - замена любых сообщений на сервере создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином ProtocolStringReplacer - замена любых сообщений на сервере для друзей можно за пару минут - BungeeHost всё уже подготовил.