Instead of copying the vanilla jar to versions/<versionId>/ and adding it to -cp (Fix 9/10), we now simply remove forge- from the -DignoreList pattern. This allows securejarhandler to process forge-1.20.1-47.4.20-client.jar on the classpath, which has Automatic-Module-Name: minecraft in its MANIFEST, and create the minecraft module from it. The forge client jar contains all patched MC classes, so PreparableReloadListener and all other vanilla classes are accessible in the minecraft module. No duplicate module creation, no split-package errors.
ZernMC Launcher
ZernMC Launcher — это полностью самописный Minecraft-лаунчер, созданный с нуля.
Клиент написан на Java, серверная часть — на Python (FastAPI).
Основные особенности
- Написан полностью с нуля, без использования готовых решений
- Удобная загрузка и обновление сборок прямо с сервера ZernMC
- Чистый и относительно читаемый код как клиента, так и сервера
- Поддержка прокси-режима через свой сервер при проблемах с внешними ресурсами (Fabric/Forge Maven, Mojang и т.д.)
- Возможность запуска клиента даже без графического интерфейса (TUI-режим)
- Полное отсутствие рекламы и телеметрии
- Не собирает никаких данных о пользователе
- Работает «из коробки»: достаточно распаковать архив и запустить
ZernMCLauncher.exe - Есть система аккаунтов и проходок
Чего пока нет в лаунчере
- Графического интерфейса (GUI) — только TUI
- Нормальных настроек (пока доступна только настройка Java и выделенной оперативной памяти)
- Поддержки Forge (в разработке)
- Поддержки Quilt, LabyMod, NeoForge и других лоадеров
- Раздела новостей об обновлениях Minecraft и лаунчера
- Выбора готовых пресетов оптимизации JVM
- Кастомных модов (UI, спавнеры, DPI, карточки)
- Сайта для лаунчера и сервера
- Трекинга наигранного времени
Что планируется доработать в ближайшее время
- UI мод — переписать мод на UI: красивое главное меню, анимации, анимированный задний фон, эмбиент звуки, интерактивность, урезание ванильных элементов до используемых
- GUI мод — привести в единый стиль с главным меню
- Мод на спавнеры — кастомные спавнеры с лимитами (5-15 спавнов), отслеживание спавнов вокруг, замена на базовый спавнер при достижении предела с эффектами и звуками, данжи «временного парадокса» с процедурной генерацией этажей, минибоссы, лут
- DPI мод — отслеживание не-ZernMC лаунчеров, защита от форков с выпеленной проверкой, уведомления админу в Telegram с технической информацией
- Сайт — полноценный сайт для лаунчера и сервера (текущий «полу-живой» нуждается в полной переделке)
- Система карточек — дроп случайных карточек (обучена на датасете скинов CS2), просмотр, продажа, крафт, обмен между игроками, внутриигровая валюта «йоны», начисление йонов на баланс, обмен йонов на предметы, вывод йонов в отдельный предмет, анимации и эффекты
- Web API — OpenAPI документация, уровни доступа к API (например, получение списка игроков требует проходку)
- Трекинг наигранного времени — обновление каждую минуту вместо часа для нормальных графиков игроков
- Генерацию команды запуска Minecraft
- Стабильную работу автообновления лаунчера
- Полноценные настройки
- Улучшенный античит / ClientChecker — проверка подлинности клиента при подключении к серверу, без нужного клиента не пустит; поставляется вместе с лаунчером, не общедоступный. Хеш-проверка всех папок и файлов сборки при каждом запуске — при несовпадении одного хеша все моды переустанавливаются. Игнорируются только: логи, ресурспаки, шейдеры, сейвы, личные файлы. Защита от подмены libs и лоадеров (Meteor и аналоги), проверка целостности модов через хеши. В перспективе — защита от Mixin-атак (перехват логики других модов), сбор отчёта о текущей сборке и сравнение с базовой
- Баг-фиксы сервера: подключить
admin_routerвmain.py, исправить импорты ролей (ROLE_USERи др. не существуют вroles.py), добавить эндпоинт/auth/pass/activate, убрать дубли импортов (TTLCache,Response) - Улучшение прокси-режима
- Стабильность и производительность серверной части
- Общую надёжность загрузки файлов с сервера
Важная информация перед использованием
Управление в лаунчере (TUI)
Лаунчер использует текстовый интерфейс (TUI):
W/S(илиЦ/Ы) или↑/↓— перемещение по менюENTER— выбор пунктаESCили пункт «Назад» — возврат назад
Если вы случайно кликнули мышкой в окне лаунчера и он «заморозился» — просто нажмите любую клавишу на клавиатуре.
Расположение сборок
Все установленные сборки хранятся в папке:
- Windows:
%USERPROFILE%\.zernmc\instances - Linux:
~/.zernmc/instances
Если сборка не удаляется корректно — удалите папку вручную.
Как скачать и запустить
Пока автообновления и GitHub Releases не настроены, скачать последнюю версию можно по ссылкам:
Скачать лаунчер:
Инструкция:
- Скачайте zip-архив
- Распакуйте в удобную папку
- Запустите
ZernMCLauncher.exe - Нажмите «Начать игру»
Установка первой сборки
Если у вас ещё нет сборок:
- Выберите «Установить новую сборку»
- Выберите тип сборки:
- ZernMC — готовые сборки с нашего сервера
- Модовый загрузчик — Fabric / Forge / Quilt и т.д.
- Ваниль — чистая версия от Mojang
Рекомендация: Не используйте кириллицу в названии сборки! (science 1.0.0-1.0.5)
Возможные проблемы и решения
Проблемы с загрузкой ассетов
Иногда лаунчер неправильно определяет Asset Index.
Решение:
- Запустите версию и посмотрите в логах, какой
.jsonфайл он пытается загрузить. - Скопируйте правильный файл из
assets/indexes/и переименуйте его в нужное имя.
Forge версии
Запуск Forge пока работает нестабильно. Рекомендуется дождаться исправления генерации команды запуска.
Прокси-режим
Если нет доступа к Fabric/Forge Maven или серверам Mojang — лаунчер пытается использовать наш сервер как прокси. Если и к нему нет доступа — загрузка может не работать.
Как сообщить об ошибке (Issue)
- Скопируйте весь текст ошибки из логов (лаунчер не очищает экран, поэтому просто скролльте вверх)
- Укажите, что вы делали перед ошибкой
- Укажите версию лаунчера
- Создайте Issue на GitHub
Разработка (для желающих помочь)
git clone https://github.com/SashegDev/launcher
Откройте launcher/launcher/pom.xml
отредактируете пути для билда, так как сейчас - он расчитан на разработку только на моём сервере
mvn clean package
можете начинать!
Благодарность
Glitch135 - За бета-тест лаунчера и фидбеки
помощь
Я был бы рад если нашлись люди кто мог бы помочь в разработке лаунчера и добавления к нему хотя бы базового UI чтоб было намногл удобнее работать с ним
Буду рад помощи в разработке! Особенно приветствуется помощь с:
- Переходом на нормальный графический интерфейс (GUI)
- Улучшением генерации команды запуска
- Добавлением поддержки Forge / NeoForge / Quilt
- Стабилизацией серверной части
- вообще улучшением клиента