Помогите Как разрешить подключение к серверу только с помощью моего клиента?

JacksonNatives

Ньюби
Баллы
1
Ник в Minecraft
Quni1337
Я имел дело с разработкой плагинов и разработкой клиентов (MCP) для Minecraft на различных версиях. Как сделать так чтобы на сервер можно было зайти только с моего клиента? Возможно ли написать такой плагин который будет это обрабатывать? Как вообще реализовать, может быть какую-то систему токенов и отправки на сервер запросов где плагин их будет обрабатывать?
Помогите пожалуйста ☹️
 
Можно пойти разными путями - подменять бренд клиента и на сервере проверять его. Но в модах так обычно не делают, потому что бренд один на весь клиент. Могут максимум загрузчики модов менять по типу форжа вроде бы.
Если у тебя прям свой полноценный клиент, то, возможно и подойдёт такое решение.

Но существует и более стандартный подход - можно просто отправлять от клиента серверу пакет, сообщающий о том, что игрок использует этот самый клиент. Если такой пакет на пришел, то сервер отключает игрока.

У плагинов и модов есть система обмена сообщениями, которая организована вот этими пакетами:
От сервера клиенту: https://wiki.vg/Protocol#Clientbound_Plugin_Message_.28configuration.29
От клиента серверу: https://wiki.vg/Protocol#Serverbound_Plugin_Message_.28configuration.29

Насколько я знаю, даже модовые сервера общаются, используя этот пакет. Передавать можно абсолютно произвольную информацию (массив байт).

Наглядный пример взаимодействия клиентского мода и серверного плагина - это WorldEdit CUI.
Есть реализация клиентского мода под разные платформы: фабрик, форж.
Есть реализация серверного мода/плагина под разные платформы: форж, баккит.
Но поскольку протокол обмена сообщениями используется один и тот же - любой мод совместим с плагином на любом ядре.
Поэтому предлагаю просто глянуть WE CUI или любого другого мода/плагина. Так, например, PlasmoVoice дружит между разными клиентами и серверами, правда там свой канал связи на отдельном порту, но как минимум инициализация обмена по каналу должна быть через те же самые пакеты.

В плагинах под баккит для работы с указанными пакетами используются PluginMessages, пример их использования можно найти тут: https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/
Но это под банжу, естественно у тебя должен быть другой канал, другие типы данных и т.д.
 
Последнее редактирование:
Тебе нужен свой лаунчер.
Вопрос был не про собственную систему авторизации или синхронизацию модов, а про запрет подключения со сторонних клиентов.
Лаунчер поможет, но он избыточен для такой задачи
 
Вопрос был не про собственную систему авторизации или синхронизацию модов, а про запрет подключения со сторонних клиентов.
Лаунчер поможет, но он избыточен для такой задачи
Вот скажи, если у него свой клиент, то логично ему нужен свой лаунчер. Иначе зипом кидать игрокам типа сами устанавливайте это слишком.
 
Назад
Верх Низ