Skip to content

darvin7531/hex-client

Repository files navigation

HexLoader Client (Launcher)

Игровой клиент-лаунчер для HexLoader на базе Electron + React + TypeScript + TailwindCSS. Обеспечивает авторизацию, скачивание обновлений сборок и автоматический запуск игры.

Оглавление


Функции

  • Синхронизация файлов: Автоматически скачивает, обновляет и удаляет файлы модов на основе манифеста от бэкенда.
  • Поддержка версий Java: Автоматически определяет и запрашивает нужную версию Java (указанную в манифесте сборки).
  • Прямой запуск: Интеграция с процессом Minecraft, автоматическая передача токенов и запуск.
  • Настройка API: Возможность сменить адрес бэкенда прямо в настройках интерфейса.
  • Интеграция с Discord RPC: Отображение игрового статуса (при интеграции).

Требования

  • Node.js: версии 18+ (рекомендуется 20 LTS)

Быстрый старт (Разработка)

  1. Установка зависимостей (из корневой папки клиента):

    npm install
  2. Запуск в режиме разработки:

    npm run dev

    Команда запустит Vite-сервер на порту 3000, дождется его готовности и откроет окно Electron.


Конфигурация и Настройки

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

1. Настройка адреса API бэкенда

Для обмена данными со сборками лаунчеру необходим адрес бэкенда. Его можно настроить в трёх местах:

  • Для сборки дистрибутива (глобальный дефолт): Задается в единственном файле конфигурации electron/sharedConfig.cts в константе DEFAULT_API_BASE (по умолчанию http://127.0.0.1:4000/api). Это значение используется при сборке .exe инсталлятора для игроков.
  • Переменная окружения: При разработке или запуске можно передать переменную окружения HEXLOADER_API_BASE (например, HEXLOADER_API_BASE=https://api.myserver.com/api npm run dev), она переопределит дефолтное значение.
  • В интерфейсе лаунчера (для разработчиков/тестировщиков): В шапке лаунчера нажмите на иконку шестерёнки. В поле «Адрес API Бэкенда» можно переопределить адрес (изменения запишутся в localStorage и во внутренний файл настроек лаунчера settings.json).

2. Настройка игрового никнейма

Выбор игрового никнейма вынесен прямо на страницу конкретной сборки (в нижней панели управления):

  • Первый запуск: Если никнейм не был настроен ранее, лаунчер сгенерирует красивый случайный ник (например, NeonHunter_384 или VoidRanger_127) и сохранит его.
  • Ручной ввод: Пользователь может ввести свой никнейм прямо в текстовое поле на нижней панели. Ввод автоматически сохраняется и синхронизируется с главным процессом Electron, после чего никнейм подставляется в аргументы запуска Minecraft (для оффлайн-авторизации).

3. Системные настройки (RAM, Java, JVM)

Доступны по клику на иконку шестерёнки в верхнем правом углу лаунчера:

  • Выделение оперативной памяти (RAM): Ползунок позволяет выбрать объем выделяемой памяти под Minecraft (от 1024 МБ до максимума физической памяти вашей системы).
  • Среда выполнения (Java): По умолчанию лаунчер сам находит или скачивает нужную версию Java (указанную в манифесте сборки). При необходимости можно вручную указать путь к конкретной JDK/JRE.
  • Аргументы JVM: Список дополнительных аргументов для оптимизации сборки и сборщика мусора (по умолчанию прописаны стандартные флаги G1GC).

Сборка дистрибутива (Production)

Для упаковки лаунчера в готовый исполняемый .exe файл установки под Windows:

  1. Убедитесь, что в electron/sharedConfig.cts указан рабочий внешний адрес вашего бэкенда в константе DEFAULT_API_BASE.
  2. Выполните команду сборщика:
    npm run dist
  3. После завершения процесса готовый установщик будет находиться в папке dist/ (например, HexLoader Setup 0.2.3.exe).

Структура проекта

  • electron/ — Код главного процесса Electron (работа с диском, сетью, запуск процессов игры).
    • main.cts — Точка входа главного процесса, обработка настроек, IPC мосты.
    • launcher.cts — Логика скачивания файлов, верификации манифеста, проверки хешей и запуска Minecraft.
    • sharedConfig.cts — Единый источник конфигурации адреса бэкенда по умолчанию.
  • src/ — Интерфейс лаунчера (React + Tailwind CSS).
    • components/ — Визуальные компоненты UI (страница сборки PackView, настройки SettingsModal, кнопка действия ActionButton).
    • lib/ — Вспомогательные библиотеки, мок-адаптер для Electron (mockElectron).
  • vite.config.ts — Настройка сборщика Vite для рендерера и прокси-сервера.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages