SignedVelocity - фикс подписанного чата для Velocity
Плагин SignedVelocity решает проблемы синхронизации подписанного чата между прокси Velocity и серверами Paper, Fabric, Sponge. Позволяет отменять и изменять сообщения без рассинхрона.
SignedVelocity - плагин для прокси Velocity, который чинит одну из самых раздражающих проблем современных сетевых серверов Minecraft - рассинхронизацию подписанного чата. Если вы держите сеть серверов на Velocity и хоть раз сталкивались с тем, что игроков выкидывает с ошибкой "Chat message validation failed" или команды не доходят до бэкенда - этот плагин для вас.
В чём вообще проблема
Начиная с Minecraft 1.19, Mojang ввели систему подписанных сообщений (secure chat). Каждое сообщение в чате теперь криптографически подписывается клиентом, и сервер обязан эту подпись проверять. Идея была в системе репортов, но на практике это сломало половину прокси-логики.
Когда между игроком и сервером стоит Velocity, возникает конфликт: прокси может изменить или отменить сообщение (например, через чат-плагин, фильтр мата или систему префиксов), но бэкенд-сервер об этом не узнает. Подпись перестаёт совпадать, и клиент либо кикает игрока, либо показывает предупреждение о небезопасном чате. На больших сетях это превращается в ад - игроки жалуются на вылеты, а админы не понимают, откуда рассинхрон.
SignedVelocity решает это элегантно: он передаёт статус модификации и отмены сообщений и команд с Velocity на бэкенд-сервер через plugin messages. Бэкенд точно знает, что прокси сделал с сообщением, и корректно синхронизирует цепочку чата. Никаких конфликтов подписей, никаких ложных киков.
Что умеет плагин
- Синхронизация отмены и изменения сообщений - если Velocity-плагин отменил или изменил сообщение, бэкенд узнает об этом и не будет ругаться на невалидную подпись
- Поддержка чат-репортов через Velocity - система жалоб Mojang продолжает работать (при желании отключается внешними плагинами типа FreedomChat, хотя автор это не рекомендует)
- Убирание предупреждения о незащищённом чате - та самая жёлтая плашка при входе на сервер. Для этого понадобится VPacketEvents или PacketEvents
По факту это must-have для любой сети на Velocity с Paper-бэкендами, где стоят чат-плагины. Без него вы либо отключаете secure chat целиком (и получаете предупреждения у всех игроков), либо миритесь с периодическими киками.
Требования
- Java 21 или новее
- Velocity 3.4.0+
Поддерживаемые бэкенды:
- Paper 1.20 и выше
- Sponge 10/12+
- Minestom
- Fabric 1.21+
Обратите внимание на Java 21 - это не опечатка. Если ваш хостинг до сих пор сидит на старых версиях Java, придётся обновляться. Кстати, на BungeeHost (https://bungee.host) все современные версии Java доступны из коробки, а сам плагин можно установить на прокси в один клик - удобно, если не хочется возиться с ручной настройкой сети.
Важно: обновитесь, если стоит старая версия
Версии SignedVelocity-Proxy ниже 1.3.0 содержат серьёзный эксплойт - через него злоумышленник может подменить ввод любого игрока и фактически получить права администратора на сервере. Бэкенд-версии этой уязвимости не подвержены, но прокси-часть обязательно обновите до последней версии. Это не тот случай, где можно отложить апдейт на потом.
Установка
Плагин ставится в два места: на сам Velocity и на каждый бэкенд-сервер. Без бэкенд-части синхронизация работать не будет.
Velocity
- Скачайте SignedVelocity-Proxy
- Закиньте в папку plugins вашего Velocity
- Перезапустите прокси
Paper
- Скачайте SignedVelocity-Paper
- Положите в папку plugins сервера Paper
- Перезапустите сервер
Sponge
- Выберите версию под ваш API: SignedVelocity-Sponge-8 поддерживает API 8.1 и 9, SignedVelocity-Sponge-10 - API 10 и 11
- Закиньте в папку plugins
- Перезапустите сервер
Fabric
- Скачайте версию SignedVelocity Fabric под вашу версию Minecraft
- Положите в папку mods
- Запустите сервер
Minestom
С Minestom ситуация чуть интереснее. Начиная с версии 1.3.0, SignedVelocity для Minestom поставляется как библиотека, которую вы подключаете к своей реализации.
Подключение через Gradle:
repositories {
mavenCentral()
}
dependencies {
implementation("io.github.4drian3d:signedvelocity-minestom:1.4.0")
}
Инициализация в коде:
import io.github._4drian3d.signedvelocity.minestom.SignedVelocity;
// затем...
SignedVelocity.initialize();
Если вы на старой версии Minestom, используйте SignedVelocity-Minestom 1.2.4 - он идёт как расширение (extension).
Кому реально нужен этот плагин
Если у вас одиночный сервер без прокси - проходите мимо, SignedVelocity вам ничего не даст. Но если у вас сеть из двух и более серверов за Velocity, и при этом стоят любые плагины, трогающие чат (LuckPerms с префиксами, чат-фильтры, плагины на цветной чат, системы приватных сообщений) - этот плагин закроет целый класс проблем, о которых вы, возможно, даже не подозревали.
Особенно актуально для версий 1.20-1.21, где проверка подписей стала жёстче. Многие админы вообще не понимают, почему игроков периодически кикает при отправке команд - а причина именно в рассинхроне подписей между прокси и бэкендом.
Если собираете сеть серверов с нуля и хотите поиграть с друзьями без головной боли - запустить сервер Майнкрафт через хостинг серверов Майнкрафт BungeeHost будет проще всего: Velocity, Paper и все нужные плагины ставятся в пару кликов, и SignedVelocity в том числе. Арендовать сервер Майнкрафт там можно буквально за минуту.
Скачать SignedVelocity стоит каждому владельцу сети на Velocity - это один из тех плагинов, которые ставишь один раз и забываешь о целой категории багов.
Скриншоты SignedVelocity - фикс подписанного чата для Velocity
Часто задаваемые вопросы
Версии плагина SignedVelocity - фикс подписанного чата для Velocity
Доступно 75 версий. Сначала показаны самые популярные и самые свежие.