# modloader.h Перечисление модлоадеров, запись одной версии модлоадера и перевод между перечислением и строковым ключом. Только заголовок, `.cpp` нет. ## ModLoader `Forge`, `Fabric`, `NeoForge`, `Quilt`. Модлоадеры взаимоисключающие: игра запускается с одним профилем из `versions/`, поэтому у сборки может быть не больше одного модлоадера. [LoaderRow](../qml/LoaderRow.md) снимает отметку с остальных, когда пользователь отмечает один. ## Ключи и названия | Значение | `loaderKey()` | `loaderTitle()` | |----------|---------------|-----------------| | `Forge` | `forge` | Minecraft Forge | | `Fabric` | `fabric` | Fabric Loader | | `NeoForge` | `neoforge` | NeoForge | | `Quilt` | `quilt` | Quilt Loader | Ключ используется в QML, в имени файла кэша (`cache/loader_<ключ>.json`) и в поле `loader` записи сборки в `customBuilds.json`. Если его поменять, старые сборки и кэши перестанут читаться. `loaderFromKey(key)` возвращает `std::nullopt` для любой другой строки, в том числе пустой. В бэкенде это значит «ванильная сборка». Названия не переводятся: это имена собственные. ## LoaderVersionEntry | Поле | Что это | |------|---------| | `loaderVersion` | `47.4.0`, `0.19.3`, `21.1.248` | | `gameVersion` | `1.20.1` | | `versionId` | ожидаемое имя профиля в `versions/`. У Fabric и Quilt оно известно заранее (`fabric-loader-<версия>-<игра>`), у Forge и NeoForge пусто: имя становится известно только после работы установщика | | `installerUrl` | ссылка на `installer.jar`, только у Forge и NeoForge | | `recommended` | у Forge помечено как recommended в `promotions_slim.json` | | `stable` | не альфа, не бета, не rc/pre | --- При создании этого документа использовался ИИ.