Игровой клиент-лаунчер для HexLoader на базе Electron + React + TypeScript + TailwindCSS. Обеспечивает авторизацию, скачивание обновлений сборок и автоматический запуск игры.
- Функции
- Требования
- Быстрый старт (Разработка)
- Конфигурация API сервера
- Сборка дистрибутива (Production)
- Структура проекта
- Синхронизация файлов: Автоматически скачивает, обновляет и удаляет файлы модов на основе манифеста от бэкенда.
- Поддержка версий Java: Автоматически определяет и запрашивает нужную версию Java (указанную в манифесте сборки).
- Прямой запуск: Интеграция с процессом Minecraft, автоматическая передача токенов и запуск.
- Настройка API: Возможность сменить адрес бэкенда прямо в настройках интерфейса.
- Интеграция с Discord RPC: Отображение игрового статуса (при интеграции).
- Node.js: версии 18+ (рекомендуется 20 LTS)
-
Установка зависимостей (из корневой папки клиента):
npm install
-
Запуск в режиме разработки:
npm run dev
Команда запустит Vite-сервер на порту 3000, дождется его готовности и откроет окно Electron.
Лаунчер поддерживает гибкую настройку как на этапе компиляции (для сборки готового клиента под игроков), так и непосредственно пользователем в интерфейсе.
Для обмена данными со сборками лаунчеру необходим адрес бэкенда. Его можно настроить в трёх местах:
- Для сборки дистрибутива (глобальный дефолт): Задается в единственном файле конфигурации 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).
Выбор игрового никнейма вынесен прямо на страницу конкретной сборки (в нижней панели управления):
- Первый запуск: Если никнейм не был настроен ранее, лаунчер сгенерирует красивый случайный ник (например,
NeonHunter_384илиVoidRanger_127) и сохранит его. - Ручной ввод: Пользователь может ввести свой никнейм прямо в текстовое поле на нижней панели. Ввод автоматически сохраняется и синхронизируется с главным процессом Electron, после чего никнейм подставляется в аргументы запуска Minecraft (для оффлайн-авторизации).
Доступны по клику на иконку шестерёнки в верхнем правом углу лаунчера:
- Выделение оперативной памяти (RAM): Ползунок позволяет выбрать объем выделяемой памяти под Minecraft (от 1024 МБ до максимума физической памяти вашей системы).
- Среда выполнения (Java): По умолчанию лаунчер сам находит или скачивает нужную версию Java (указанную в манифесте сборки). При необходимости можно вручную указать путь к конкретной JDK/JRE.
- Аргументы JVM: Список дополнительных аргументов для оптимизации сборки и сборщика мусора (по умолчанию прописаны стандартные флаги G1GC).
Для упаковки лаунчера в готовый исполняемый .exe файл установки под Windows:
- Убедитесь, что в electron/sharedConfig.cts указан рабочий внешний адрес вашего бэкенда в константе
DEFAULT_API_BASE. - Выполните команду сборщика:
npm run dist
- После завершения процесса готовый установщик будет находиться в папке
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 для рендерера и прокси-сервера.