Skip to main content
XNLC (Xneon Launcher Core) это набор TypeScript-модулей, на которых построен Xneon Launcher. Каждый пакет отвечает за свою задачу: запуск игры, поиск модов, работу с NBT, серверами, скинами и типизацию. Все модули публикуются в реестр git.xneon.org и доступны для установки через npm/pnpm. Исходный код открыт (GPL-3.0).

Возможности

  • Запуск Minecraft с любыми загрузчиками (Vanilla, Fabric, Quilt, Forge, NeoForge, LiteLoader, OptiFine)
  • Установка и обновление загрузчиков автоматически
  • Работа с активами, библиотеками и нативными компонентами
  • Поиск и установка модов из Modrinth, CurseForge и FTB
  • Создание и управление локальными Minecraft-серверами
  • Работа со скинами из каталога Laby.net
  • Чтение и запись NBT-файлов Minecraft
  • Единая типизация для всех модулей

Состав экосистемы

@xnlc/core

Запуск Minecraft, установка загрузчиков, управление версиями и активами. Главный фасад: класс Xnlc.

@xnlc/mods

Клиенты Modrinth, CurseForge и FTB. Поиск, фильтрация, загрузка и проверка обновлений модов.

@xnlc/servers

Управление локальными серверами: запуск, остановка, консоль, игроки, метрики, плагины.

@xnlc/skins

Система скинов: локальная библиотека, каталог Laby.net, поиск по тегам, плащи, превью.

@xnlc/nbt

Чтение и запись NBT-файлов Minecraft. Замена prismarine-nbt с автовыводом типов тегов.

@xnlc/types

Единый источник типов: доменные сущности, IPC-контракты, типы запуска, серверные типы.

Граф зависимостей

  • @xnlc/types: единственный модуль без зависимостей. Все остальные модули зависят от него напрямую или косвенно.
  • @xnlc/core зависит от @xnlc/types и adm-zip.
  • @xnlc/mods, @xnlc/servers, @xnlc/skins, @xnlc/nbt не имеют внешних зависимостей (кроме @xnlc/types где указано).

Установка

Все пакеты публикуются в приватный реестр git.xneon.org. Добавьте его в .npmrc:

Быстрый старт

Самый простой способ запустить Minecraft:

Разработка в монорепозитории

Если вы работаете в монорепозитории Xneon Launcher, используйте команду sync:xnlc для синхронизации локальных пакетов:
Эта команда связывает локальные пакеты из packages/ с приложением без необходимости публикации в реестр.
При разработке в Electron-окружении учитывайте особенность: если запущен процесс Electron, может возникнуть ошибка EPERM на файл dxil.dll. Закройте Electron перед сборкой.