From 53c00a6414ab91a625f36ac048c646edfda6a1ab Mon Sep 17 00:00:00 2001 From: SashegDev Date: Wed, 19 Aug 2026 14:49:55 +0000 Subject: [PATCH] =?UTF-8?q?v1.0.16.17=20=E2=80=94=20re-embed=20bootstrap?= =?UTF-8?q?=20jar,=20switch=20exe=20signing=20to=20jsign?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 89 ++++++++++++++++++++--------------- launcher/launcher/pom.xml | 97 +++++++++++++++++++++------------------ launcher/pom.xml | 2 +- 3 files changed, 107 insertions(+), 81 deletions(-) diff --git a/README.md b/README.md index 6eca6a7..5fef510 100644 --- a/README.md +++ b/README.md @@ -8,32 +8,44 @@ - Написан полностью с нуля, без использования готовых решений - Удобная загрузка и обновление сборок прямо с сервера ZernMC - Чистый и относительно читаемый код как клиента, так и сервера -- Поддержка **прокси-режима** через свой сервер при проблемах с внешними ресурсами (Fabric/Forge Maven, Mojang и т.д.) -- Возможность запуска клиента даже без графического интерфейса (TUI-режим) +- Графический интерфейс на **JavaFX** (по умолчанию) + **TUI** (режим `--cli`) +- Поддержка **прокси-режима** через свой сервер при проблемах с внешними ресурсами (Fabric/Forge Maven, Mojang и т.д.), обход блокировок через выбор домена и SNI +- Поддержка загрузчиков **Fabric**, **Forge**, **NeoForge** и ванильных версий (установка через встроенный JRE) +- Ротационные логи в стиле Minecraft: `latest.log` + архивы `.log.gz` +- Инкрементальное обновление JavaFX и автообновление лаунчера +- Подпись exe самоподписным сертификатом Zern.cc (jsign/Authenticode) - Полное отсутствие рекламы и телеметрии - Не собирает никаких данных о пользователе -- Работает «из коробки»: достаточно распаковать архив и запустить `ZernMCLauncher.exe` +- Работает «из коробки»: достаточно распаковать архив и запустить `zernmc.exe` - Есть система аккаунтов и проходок +## Состав дистрибутива + +В архиве `ZernMC-win-<версия>.zip`: + +- `zernmc.exe` — основная версия с GUI (JavaFX) +- `zernmc-cli.exe` — консольная версия (TUI) +- `zernmc-cli-jfx.exe` — консоль + JavaFX UI +- `lib/jre21` — встроенный JRE 21 +- `lib/javafx` — модули JavaFX 23.0.1 + +Bootstrap-модуль встроен прямо в `.exe`, отдельный jar рядом не нужен. + ## Чего пока нет в лаунчере -- Графического интерфейса (GUI) — только TUI -- Нормальных настроек (пока доступна только настройка Java и выделенной оперативной памяти) -- Поддержки **Forge** (в разработке) -- Поддержки Quilt, LabyMod, NeoForge и других лоадеров -- Раздела новостей об обновлениях Minecraft и лаунчера -- Выбора готовых пресетов оптимизации JVM +- Готовых пресетов оптимизации JVM (настраиваются Java и выделенная память) +- Поддержки Quilt, LabyMod и других лоадеров - Кастомных модов (UI, спавнеры, DPI, карточки) -- Сайта для лаунчера и сервера -- Трекинга наигранного времени +- Сайта для лаунчера и сервера (текущий требует переделки) +- Трекинга наигранного времени (обновление раз в час вместо минуты) ## Что планируется доработать в ближайшее время - **UI мод** — переписать мод на UI: красивое главное меню, анимации, анимированный задний фон, эмбиент звуки, интерактивность, урезание ванильных элементов до используемых - **GUI мод** — привести в единый стиль с главным меню - **Мод на спавнеры** — кастомные спавнеры с лимитами (5-15 спавнов), отслеживание спавнов вокруг, замена на базовый спавнер при достижении предела с эффектами и звуками, данжи «временного парадокса» с процедурной генерацией этажей, минибоссы, лут -- **DPI мод** — отслеживание не-ZernMC лаунчеров, защита от форков с выпеленной проверкой, уведомления админу в Telegram с технической информацией -- **Сайт** — полноценный сайт для лаунчера и сервера (текущий «полу-живой» нуждается в полной переделке) +- **DPI мод** — отслеживание не-ZernMC лаунчеров, защита от форков с выпиленной проверкой, уведомления админу в Telegram с технической информацией +- **Сайт** — полноценный сайт для лаунчера и сервера - **Система карточек** — дроп случайных карточек (обучена на датасете скинов CS2), просмотр, продажа, крафт, обмен между игроками, внутриигровая валюта «йоны», начисление йонов на баланс, обмен йонов на предметы, вывод йонов в отдельный предмет, анимации и эффекты - **Web API** — OpenAPI документация, уровни доступа к API (например, получение списка игроков требует проходку) - **Трекинг наигранного времени** — обновление каждую минуту вместо часа для нормальных графиков игроков @@ -50,25 +62,31 @@ ### Управление в лаунчере (TUI) -Лаунчер использует **текстовый интерфейс (TUI)**: +Консольные версии (`zernmc-cli.exe`, а также режим `--cli`) используют **текстовый интерфейс (TUI)**: -- `W` / `S` (или `Ц` / `Ы`) или `↑` / `↓` — перемещение по меню -- `ENTER` — выбор пункта +- `W` / `S` (или `Ц` / `Ы`) или `↑` / `↓` — перемещение по меню +- `ENTER` — выбор пункта - `ESC` или пункт «Назад» — возврат назад Если вы случайно кликнули мышкой в окне лаунчера и он «заморозился» — просто нажмите **любую клавишу** на клавиатуре. +Основная версия `zernmc.exe` запускает графический интерфейс JavaFX. + ### Расположение сборок Все установленные сборки хранятся в папке: - **Windows**: `%USERPROFILE%\.zernmc\instances` -- **Linux**: `~/.zernmc/instances` +- **Linux**: `~/.zernmc\instances` Если сборка не удаляется корректно — удалите папку вручную. +### Логи + +Логи лаунчера пишутся в файл `latest.log` рядом с исполняемым файлом; старые логи архивируются в `.log.gz` (в стиле Minecraft). + ## Как скачать и запустить -Пока автообновления и GitHub Releases не настроены, скачать последнюю версию можно по ссылкам: +Скачать последнюю версию можно по ссылкам: **Скачать лаунчер:** - https://api.zernmc.ru/launcher/download/latest @@ -76,9 +94,9 @@ **Инструкция:** 1. Скачайте zip-архив -2. Распакуйте в удобную папку -3. Запустите `ZernMCLauncher.exe` -4. Нажмите **«Начать игру»** +2. Распакуйте в удобную папку (например `C:\ZernMC`) +3. Запустите `zernmc.exe` (или `zernmc-cli.exe` для консольного режима) +4. Войдите в аккаунт и нажмите **«Начать игру»** ### Установка первой сборки @@ -86,28 +104,31 @@ 1. Выберите **«Установить новую сборку»** 2. Выберите тип сборки: - **ZernMC** — готовые сборки с нашего сервера - - **Модовый загрузчик** — Fabric / Forge / Quilt и т.д. + - **Модовый загрузчик** — Fabric / Forge / NeoForge - **Ваниль** — чистая версия от Mojang **Рекомендация:** Не используйте кириллицу в названии сборки! (science 1.0.0-1.0.5) ## Возможные проблемы и решения +### «Error: Invalid or corrupt jarfile» при запуске exe +Перекачайте архив целиком из https://api.zernmc.ru/launcher/download/latest и распакуйте заново — старые версии (до 1.0.16.17) были повреждены подписью и не запускаются. + ### Проблемы с загрузкой ассетов -Иногда лаунчер неправильно определяет Asset Index. +Иногда лаунчер неправильно определяет Asset Index. **Решение:** 1. Запустите версию и посмотрите в логах, какой `.json` файл он пытается загрузить. 2. Скопируйте правильный файл из `assets/indexes/` и переименуйте его в нужное имя. -### Forge версии -Запуск Forge пока работает нестабильно. Рекомендуется дождаться исправления генерации команды запуска. +### Forge / NeoForge +Работает через установщики лоадеров. Если у вас нет внешнего доступа к Maven-репозиториям — используйте прокси-режим. ### Прокси-режим Если нет доступа к Fabric/Forge Maven или серверам Mojang — лаунчер пытается использовать наш сервер как прокси. Если и к нему нет доступа — загрузка может не работать. ## Как сообщить об ошибке (Issue) -1. Скопируйте весь текст ошибки из логов (лаунчер не очищает экран, поэтому просто скролльте вверх) +1. Скопируйте весь текст ошибки из логов (`latest.log`) 2. Укажите, что вы делали перед ошибкой 3. Укажите версию лаунчера 4. Создайте Issue на GitHub @@ -118,25 +139,21 @@ git clone https://github.com/SashegDev/launcher ``` Откройте `launcher/launcher/pom.xml` -отредактируете пути для билда, так как сейчас - он расчитан на разработку только на моём сервере +отредактируйте пути для билда, так как сейчас - он рассчитан на разработку только на своём сервере ```bash mvn clean package ``` можете начинать! +**Сборка exe на Linux требует:** `jsign` (`~/tools/jsign/jsign.jar`), файлы сертификата в `/root/cert/codesign/`, встроенный JRE в `~/launcher/jre/jre21`. + ### Благодарность -Glitch135 - За бета-тест лаунчера и фидбеки - -### помощь -Я был бы рад если нашлись люди кто мог бы помочь в разработке лаунчера и добавления к нему хотя бы базового UI чтоб было намногл удобнее работать с ним - - +- Glitch135 — за бета-тест лаунчера и фидбеки Буду рад помощи в разработке! Особенно приветствуется помощь с: -- Переходом на нормальный графический интерфейс (GUI) - Улучшением генерации команды запуска -- Добавлением поддержки Forge / NeoForge / Quilt +- Добавлением поддержки Quilt / LabyMod - Стабилизацией серверной части -- вообще улучшением клиента +- Вообще улучшением клиента \ No newline at end of file diff --git a/launcher/launcher/pom.xml b/launcher/launcher/pom.xml index 17b2565..61a702d 100644 --- a/launcher/launcher/pom.xml +++ b/launcher/launcher/pom.xml @@ -159,7 +159,10 @@ ${project.basedir}/src/main/icons/zernmc.ico gui false - me.sashegdev.zernmc.launcher.Bootstrap + + me.sashegdev.zernmc.launcher.Bootstrap + false + --jfx lib/jre21 @@ -191,7 +194,10 @@ ../../server/builds/zernmc-bootstrap.jar console false - me.sashegdev.zernmc.launcher.Bootstrap + + me.sashegdev.zernmc.launcher.Bootstrap + false + --cli lib/jre21 @@ -223,7 +229,10 @@ ../../server/builds/zernmc-bootstrap.jar console false - me.sashegdev.zernmc.launcher.Bootstrap + + me.sashegdev.zernmc.launcher.Bootstrap + false + --jfx lib/jre21 @@ -315,59 +324,59 @@ - - - + + + + + + + + + + - - - - - + + + + + - + + - - - - - - - + + + + + - - - - - + + + + + - + + - - - - - - - + + + + + - - - - - + + + + + - + + - - - diff --git a/launcher/pom.xml b/launcher/pom.xml index c2fc7e2..70cd02a 100644 --- a/launcher/pom.xml +++ b/launcher/pom.xml @@ -20,7 +20,7 @@ 1.0.16 - 16 + 17 21 21 UTF-8