1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Помощь", создана пользователем JacksonNatives, 30 ноя 2023.

  1. Автор темы
    JacksonNatives

    JacksonNatives Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Quni1337
    Я имел дело с разработкой плагинов и разработкой клиентов (MCP) для Minecraft на различных версиях. Как сделать так чтобы на сервер можно было зайти только с моего клиента? Возможно ли написать такой плагин который будет это обрабатывать? Как вообще реализовать, может быть какую-то систему токенов и отправки на сервер запросов где плагин их будет обрабатывать?
    Помогите пожалуйста :(
     
  2. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Можно пойти разными путями - подменять бренд клиента и на сервере проверять его. Но в модах так обычно не делают, потому что бренд один на весь клиент. Могут максимум загрузчики модов менять по типу форжа вроде бы.
    Если у тебя прям свой полноценный клиент, то, возможно и подойдёт такое решение.

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

    У плагинов и модов есть система обмена сообщениями, которая организована вот этими пакетами:
    От сервера клиенту: 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/
    Но это под банжу, естественно у тебя должен быть другой канал, другие типы данных и т.д.
     
    Последнее редактирование: 30 ноя 2023
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Тебе нужен свой лаунчер.
     
  4. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Вопрос был не про собственную систему авторизации или синхронизацию модов, а про запрет подключения со сторонних клиентов.
    Лаунчер поможет, но он избыточен для такой задачи
     
  5. SlenderMix

    SlenderMix Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    HIDDEN
    Вот скажи, если у него свой клиент, то логично ему нужен свой лаунчер. Иначе зипом кидать игрокам типа сами устанавливайте это слишком.
     
  6. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Резонно :good:
     

Поделиться этой страницей