Скачать wsmc — Minecraft Моды — MetaMods

Установок

0

Последнее обновление

2 года назад
Клиент
Fabric
Quilt
Forge
Neoforge
Утилиты

WSMC

Добавляет поддержку WebSocket для Minecraft Java Edition. Большинство провайдеров CDN (особенно в бесплатных тарифах) не поддерживают проксирование обычного TCP-трафика. Благодаря этому моду владельцы серверов могут скрыть свой сервер за CDN и разрешить игрокам подключаться через WebSocket, что обеспечивает защиту от DDoS-атак.

Совместимость: Minecraft 1.20.2, Forge и Fabric. Мод работает автономно и не требует дополнительных зависимостей.

Функциональность на сервере

  • Сервер позволяет игрокам подключаться через WebSocket
  • Сохраняется возможность подключения через стандартный TCP-протокол
  • Обработка TCP и WebSocket соединений осуществляется через один порт
  • Игроки без этого мода на клиенте могут подключаться к серверу через обычный TCP
  • Сервер может получать статистику клиентов (например, реальный IP-адрес) из WebSocket handshake

Функциональность на клиенте

  • Клиент может подключаться к серверам с поддержкой WebSocket используя URI вида ws://hostname.com:port/path_to_minecraft_endpoint
  • Сохраняется возможность подключения к любым серверам через стандартный TCP с использованием обычного синтаксиса hostname_or_ip:port

Важные особенности

  • Мод не влияет на игровой процесс
  • Не изменяет пользовательский интерфейс
  • Обычные клиенты могут подключаться к вашему серверу даже при установленном моде (другие моды могут ограничивать эту возможность)
  • Установка мода на клиенте не мешает подключению к обычным или модифицированным серверам
  • Сервер может получать реальные IP-адреса игроков, подключившихся через CDN-проксированный WebSocket
  • Совместим с другими TCP-WebSocket прокси, такими как websocat

Настройка

Конфигурация мода передается через системные свойства JVM с использованием параметра -D в командной строке.

Ключ свойства Тип Назначение Сторона По умолчанию Пример
wsmc.disableVanillaTCP boolean Отключить стандартный TCP вход и статус сервера Сервер false true
wsmc.wsmcEndpoint string Установить WebSocket Endpoint для входа в Minecraft и статуса сервера. Если свойство не установлено, клиент может подключиться через ЛЮБОЙ WebSocket Endpoint. Должно начинаться с /, регистрозависимо Сервер Не установлено /mc
wsmc.debug boolean Показывать отладочные логи Сервер/Клиент false true
wsmc.dumpBytes boolean Сохранять сырые WebSocket бинарные фреймы. Работает только если wsmc.debug установлен в true Сервер/Клиент false true

Для разработчиков

На стороне сервера, если клиент подключается через WebSocket, его handshake запрос доступен через стандартный класс net.minecraft.network.Connection. Для получения этой информации приведите экземпляр Connection к IConnectionEx, затем вызовите IConnectionEx.getWsHandshakeRequest().

Это полезно для получения информации об исходном запросе, если сервер Minecraft находится за обратным прокси (например, CDN). Например, заголовки X-Forwarded-For и CF-IPCountry указывают IP-адрес клиента и код страны соответственно.

Участники проекта
rikka0w0

rikka0w0

Создан: 9 окт 2023

ID: 28115