- Документация
- https://modrinth.com/plugin/protoweaver
ProtoWeaver — плагин-библиотека для создания собственных сетевых протоколов поверх внутреннего Netty-сервера Minecraft. Проект адресован разработчикам, которым нужен обмен данными между компонентами инфраструктуры без отдельного сокет-сервера на другом порту.
В этой публикации представлены proxy-сборки для Velocity и Waterfall. ProtoWeaver не добавляет самостоятельную игровую механику: его функции используются другим плагином или Java-приложением, которое определяет пакеты, обработчики и логику соединения.
Когда инфраструктура включает прокси, несколько серверов или внешнее приложение, разработчику может понадобиться служебный протокол. ProtoWeaver предлагает организовать его на том же сетевом контуре, который обслуживает Minecraft.
Официальное описание выделяет такие сценарии:
• создание пользовательских протоколов;
• обмен объектами-пакетами;
• связь прокси с сервером независимо от наличия игроков онлайн;
• подключение стороннего Java-приложения через клиентский модуль;
• работа без дополнительного сетевого сервиса и порта.
Состав данных и действия после их получения задаёт не библиотека, а использующий её проект.
Протоколы ProtoWeaver работают в экземпляре Netty, применяемом Minecraft. По замыслу проекта это позволяет прокси и серверной части общаться через общий порт, не используя подключение игрока как транспорт служебных сообщений.
В официальном тексте заявлены SSL-шифрование и аутентификация протокола. Однако основа не раскрывает наборы шифров, модель доверия, выпуск сертификатов и ротацию ключей. Поэтому краткого описания недостаточно для полноценной оценки криптографической защиты конкретного внедрения.
Передаваемые пакеты представлены обычными Java-объектами. Зарегистрированный в протоколе объект может отправляться через соединение, а клиентская и серверная стороны получают данные через обработчики. Они могут использовать общий класс либо разные реализации.
Подтверждённые возможности:
• пакеты в виде POJO;
• пользовательская сериализация;
• обработка готовности, отключения и входящих пакетов;
• сжатие Gzip, Snappy или LZ;
• ограничение числа соединений в создаваемом протоколе;
• раздельные клиентские и серверные обработчики.
Исходный текст содержит примеры API, но для справочного обзора не требуется воспроизводить код и параметры сборки.
В перечне функций отмечены как готовые SSL-шифрование, аутентификация, сжатие, пользовательская сериализация и пакеты-объекты. Несколько направлений обозначены как незавершённые: регистрация сырых протоколов наподобие HTTP или SSH, пользовательские SSL-провайдеры и сертификаты, многопротокольные соединения.
При планировании интеграции полезно разделять:
• возможности, прямо отмеченные как реализованные;
• пункты, оставленные в планах;
• поведение, не описанное в материалах.
Упоминание функции в дорожной карте не подтверждает её наличие в опубликованном JAR.
Для рассматриваемого варианта подтверждены Velocity и Waterfall. Метаданные охватывают ветки 1.14–1.20.6 со всеми перечисленными промежуточными выпусками, 1.21–1.21.11, а также 26.1 и 26.1.1.
Этот диапазон не гарантирует, что любой зависимый плагин совместим со всеми версиями. У него могут быть собственные ограничения. Стороны client и server в карточке обозначены как unknown, поэтому нельзя вывести универсальное требование устанавливать ProtoWeaver на игровой клиент или каждый backend-сервер.
При проверке совместимости учитывают:
• версию прокси;
• выбранный JAR;
• версию использующего библиотеку плагина;
• версии backend-серверов;
• реальную схему размещения компонентов.
JAR помещается в папку plugins совместимого прокси-сервера. Библиотека устанавливается рядом с плагином, который к ней обращается. Автор отдельно предупреждает не включать ProtoWeaver внутрь собственного JAR методом shading: он должен оставаться отдельным модулем.
В выбранных метаданных обязательные project dependencies не указаны. Это не делает библиотеку самостоятельным пользовательским продуктом: практический сценарий обычно создаёт другой плагин или приложение.
Базовая последовательность внедрения:
• выбрать proxy-сборку;
• сверить версию API с зависимым проектом;
• не объединять библиотеку с собственным JAR;
• сохранить контрольные суммы;
• сначала проверить связку на отдельном стенде.
Опубликованы две сборки:
• protoweaver-proxy-1.5.1.jar — версия 1.5.1, 5 513 137 байт; SHA-512: befd194227b4ab2237d6d5e23bfa084bb6215bfa409727803f1b1e6427ea44b408b16f7136dd998ab824db535f7c127cf00ced35e63ab85aacdbd7a499d0bdc7; SHA-1: ff1552217a85dfe204f5b3c5a265d79cf5c7b774;
• protoweaver-1.4.9-proxy.jar — версия 1.4.9, 7 464 640 байт; SHA-512: 246dfafcca248a7bd4afc18cf9beaac3781a8c2a93f1b7d606fead21f98305b070317485207ec9c58fd744ebe334476743ddac9d88ee253c823afb316da32bf1; SHA-1: 1e97cda08d72aaac95844121f9c40f66196082af.
Хеш подтверждает совпадение локального файла с опубликованным артефактом, но не заменяет анализ кода и поведения.
В карточке указана лицензия CC0-1.0. Она описывает правовой режим проекта, но не подтверждает техническую пригодность интеграции и не разрешает автоматически возможные лицензионные вопросы зависимого ПО.
JAR-файлы получены по официальному HTTPS, локально сверены по опубликованным хешам и прошли статическую проверку структуры и путей архивов. Динамический запуск не выполнялся. Следовательно, не проверялись сетевое поведение, устойчивость при ошибках, производительность и взаимодействие с конкретной инфраструктурой.
Материалы не содержат полной документации API всех выпусков, заметок о миграции между 1.4.9 и 1.5.1, матрицы версий Velocity и Waterfall, параметров SSL, политики журналирования и поведения при разрыве связи. Нельзя считать подтверждёнными:
• гарантированную пропускную способность;
• допустимое число протоколов;
• совместимость схем разных версий;
• автоматическое восстановление соединений;
• пригодность для чувствительных данных без отдельного аудита.
Для обновления сначала сопоставляют изменения API в зависимом проекте, затем проверяют соединение и обработку пакетов на тестовой копии.
Безопаснее проверять ресурс в отдельном тестовом профиле или на копии сервера и мира. Перед установкой сохраните резервную копию конфигурации и пользовательских данных, зафиксируйте текущие версии Minecraft и загрузчика, а после запуска проверьте журнал ошибок и только затем переносите изменение в основное окружение.
Проект ориентирован на proxy-инфраструктуру и разработчиков. Стороны client/server не определены, поэтому обязательность клиентской установки из данных не следует.
Официальное описание утверждает, что прокси может общаться с серверной частью независимо от присутствия игроков. Итоговое поведение задаёт использующий библиотеку проект.
Основная идея состоит в использовании порта и Netty-сервера Minecraft, поэтому для заявленного сценария дополнительный сокет-сервер не нужен.
Автор прямо предупреждает не применять shading. ProtoWeaver устанавливается рядом с зависимым плагином как отдельный компонент.
Версия 1.5.1 новее по номеру, но выбор должен соответствовать API и совместимости конкретного зависимого проекта.
В этой публикации представлены proxy-сборки для Velocity и Waterfall. ProtoWeaver не добавляет самостоятельную игровую механику: его функции используются другим плагином или Java-приложением, которое определяет пакеты, обработчики и логику соединения.
Назначение проекта
Когда инфраструктура включает прокси, несколько серверов или внешнее приложение, разработчику может понадобиться служебный протокол. ProtoWeaver предлагает организовать его на том же сетевом контуре, который обслуживает Minecraft.
Официальное описание выделяет такие сценарии:
• создание пользовательских протоколов;
• обмен объектами-пакетами;
• связь прокси с сервером независимо от наличия игроков онлайн;
• подключение стороннего Java-приложения через клиентский модуль;
• работа без дополнительного сетевого сервиса и порта.
Состав данных и действия после их получения задаёт не библиотека, а использующий её проект.
Скриншоты и внешний вид
Архитектурный принцип
Протоколы ProtoWeaver работают в экземпляре Netty, применяемом Minecraft. По замыслу проекта это позволяет прокси и серверной части общаться через общий порт, не используя подключение игрока как транспорт служебных сообщений.
В официальном тексте заявлены SSL-шифрование и аутентификация протокола. Однако основа не раскрывает наборы шифров, модель доверия, выпуск сертификатов и ротацию ключей. Поэтому краткого описания недостаточно для полноценной оценки криптографической защиты конкретного внедрения.
Пакеты, обработчики и сериализация
Передаваемые пакеты представлены обычными Java-объектами. Зарегистрированный в протоколе объект может отправляться через соединение, а клиентская и серверная стороны получают данные через обработчики. Они могут использовать общий класс либо разные реализации.
Подтверждённые возможности:
• пакеты в виде POJO;
• пользовательская сериализация;
• обработка готовности, отключения и входящих пакетов;
• сжатие Gzip, Snappy или LZ;
• ограничение числа соединений в создаваемом протоколе;
• раздельные клиентские и серверные обработчики.
Исходный текст содержит примеры API, но для справочного обзора не требуется воспроизводить код и параметры сборки.
Реализованные функции и планы
В перечне функций отмечены как готовые SSL-шифрование, аутентификация, сжатие, пользовательская сериализация и пакеты-объекты. Несколько направлений обозначены как незавершённые: регистрация сырых протоколов наподобие HTTP или SSH, пользовательские SSL-провайдеры и сертификаты, многопротокольные соединения.
При планировании интеграции полезно разделять:
• возможности, прямо отмеченные как реализованные;
• пункты, оставленные в планах;
• поведение, не описанное в материалах.
Упоминание функции в дорожной карте не подтверждает её наличие в опубликованном JAR.
Платформы и версии Minecraft
Для рассматриваемого варианта подтверждены Velocity и Waterfall. Метаданные охватывают ветки 1.14–1.20.6 со всеми перечисленными промежуточными выпусками, 1.21–1.21.11, а также 26.1 и 26.1.1.
Этот диапазон не гарантирует, что любой зависимый плагин совместим со всеми версиями. У него могут быть собственные ограничения. Стороны client и server в карточке обозначены как unknown, поэтому нельзя вывести универсальное требование устанавливать ProtoWeaver на игровой клиент или каждый backend-сервер.
При проверке совместимости учитывают:
• версию прокси;
• выбранный JAR;
• версию использующего библиотеку плагина;
• версии backend-серверов;
• реальную схему размещения компонентов.
Установка и место в проекте
JAR помещается в папку plugins совместимого прокси-сервера. Библиотека устанавливается рядом с плагином, который к ней обращается. Автор отдельно предупреждает не включать ProtoWeaver внутрь собственного JAR методом shading: он должен оставаться отдельным модулем.
В выбранных метаданных обязательные project dependencies не указаны. Это не делает библиотеку самостоятельным пользовательским продуктом: практический сценарий обычно создаёт другой плагин или приложение.
Базовая последовательность внедрения:
• выбрать proxy-сборку;
• сверить версию API с зависимым проектом;
• не объединять библиотеку с собственным JAR;
• сохранить контрольные суммы;
• сначала проверить связку на отдельном стенде.
Файлы и контрольные суммы
Опубликованы две сборки:
• protoweaver-proxy-1.5.1.jar — версия 1.5.1, 5 513 137 байт; SHA-512: befd194227b4ab2237d6d5e23bfa084bb6215bfa409727803f1b1e6427ea44b408b16f7136dd998ab824db535f7c127cf00ced35e63ab85aacdbd7a499d0bdc7; SHA-1: ff1552217a85dfe204f5b3c5a265d79cf5c7b774;
• protoweaver-1.4.9-proxy.jar — версия 1.4.9, 7 464 640 байт; SHA-512: 246dfafcca248a7bd4afc18cf9beaac3781a8c2a93f1b7d606fead21f98305b070317485207ec9c58fd744ebe334476743ddac9d88ee253c823afb316da32bf1; SHA-1: 1e97cda08d72aaac95844121f9c40f66196082af.
Хеш подтверждает совпадение локального файла с опубликованным артефактом, но не заменяет анализ кода и поведения.
Лицензия и проверка файлов
В карточке указана лицензия CC0-1.0. Она описывает правовой режим проекта, но не подтверждает техническую пригодность интеграции и не разрешает автоматически возможные лицензионные вопросы зависимого ПО.
JAR-файлы получены по официальному HTTPS, локально сверены по опубликованным хешам и прошли статическую проверку структуры и путей архивов. Динамический запуск не выполнялся. Следовательно, не проверялись сетевое поведение, устойчивость при ошибках, производительность и взаимодействие с конкретной инфраструктурой.
Практические ограничения
Материалы не содержат полной документации API всех выпусков, заметок о миграции между 1.4.9 и 1.5.1, матрицы версий Velocity и Waterfall, параметров SSL, политики журналирования и поведения при разрыве связи. Нельзя считать подтверждёнными:
• гарантированную пропускную способность;
• допустимое число протоколов;
• совместимость схем разных версий;
• автоматическое восстановление соединений;
• пригодность для чувствительных данных без отдельного аудита.
Для обновления сначала сопоставляют изменения API в зависимом проекте, затем проверяют соединение и обработку пакетов на тестовой копии.
Безопасная проверка
Безопаснее проверять ресурс в отдельном тестовом профиле или на копии сервера и мира. Перед установкой сохраните резервную копию конфигурации и пользовательских данных, зафиксируйте текущие версии Minecraft и загрузчика, а после запуска проверьте журнал ошибок и только затем переносите изменение в основное окружение.
FAQ
Нужен ли ProtoWeaver обычному игроку?
Проект ориентирован на proxy-инфраструктуру и разработчиков. Стороны client/server не определены, поэтому обязательность клиентской установки из данных не следует.
Может ли связь работать без игроков онлайн?
Официальное описание утверждает, что прокси может общаться с серверной частью независимо от присутствия игроков. Итоговое поведение задаёт использующий библиотеку проект.
Требуется ли отдельный порт?
Основная идея состоит в использовании порта и Netty-сервера Minecraft, поэтому для заявленного сценария дополнительный сокет-сервер не нужен.
Можно ли встроить библиотеку в собственный плагин?
Автор прямо предупреждает не применять shading. ProtoWeaver устанавливается рядом с зависимым плагином как отдельный компонент.
Как выбрать между 1.5.1 и 1.4.9?
Версия 1.5.1 новее по номеру, но выбор должен соответствовать API и совместимости конкретного зависимого проекта.