2026-08-23 03:30:31 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
|
|
// Пути к данным лаунчера. Собственная папка galeonLauncher лежит рядом со
|
|
|
|
|
// стандартной .minecraft, а не в системном каталоге приложения.
|
|
|
|
|
namespace LauncherPaths {
|
|
|
|
|
|
|
|
|
|
// Родительская папка, в которой лежит .minecraft (и наша galeonLauncher).
|
|
|
|
|
QString containerDir();
|
|
|
|
|
|
|
|
|
|
// <containerDir>/galeonLauncher — корень данных лаунчера.
|
|
|
|
|
QString rootDir();
|
|
|
|
|
|
|
|
|
|
// Стандартная папка игры.
|
|
|
|
|
QString defaultMinecraftDir();
|
|
|
|
|
|
|
|
|
|
QString settingsFile();
|
|
|
|
|
QString profilesFile();
|
2026-08-27 09:21:51 +03:00
|
|
|
|
|
|
|
|
// <root>/customBuilds.json — пользовательские сборки.
|
|
|
|
|
QString customBuildsFile();
|
|
|
|
|
|
|
|
|
|
// <root>/versions.json — как сборки назывались до переименования. Читается
|
|
|
|
|
// один раз при миграции и больше ни для чего не нужен.
|
|
|
|
|
QString legacyCustomBuildsFile();
|
|
|
|
|
|
|
|
|
|
// <root>/builds — архивы содержимого .minecraft по одному на сборку.
|
|
|
|
|
QString buildStorageDir();
|
2026-08-23 03:30:31 +03:00
|
|
|
|
2026-08-31 00:59:14 +03:00
|
|
|
// <root>/builds/<id> — папка одной сборки: её архив и, у сезонных, скачанный
|
|
|
|
|
// пак с описанием установленной ревизии.
|
|
|
|
|
QString buildDir(int buildId);
|
|
|
|
|
|
|
|
|
|
// <root>/builds/<id>/season.json — какая ревизия сезонной сборки установлена и
|
|
|
|
|
// какие файлы она принесла. Список нужен, чтобы при обновлении убрать те, что
|
|
|
|
|
// из сборки ушли.
|
|
|
|
|
QString seasonalStateFile(int buildId);
|
|
|
|
|
|
2026-08-23 03:30:31 +03:00
|
|
|
// Сюда качается authlib-injector.
|
|
|
|
|
QString runtimeDir();
|
|
|
|
|
|
2026-08-27 19:35:11 +03:00
|
|
|
// <root>/java — сборки Java, скачанные лаунчером. Каждая в своей подпапке,
|
|
|
|
|
// имя подпапки — идентификатор сборки из каталога.
|
|
|
|
|
QString javaDir();
|
|
|
|
|
|
|
|
|
|
// Слепок каталога доступных сборок Java с отметкой времени.
|
|
|
|
|
QString javaCatalogFile();
|
|
|
|
|
|
|
|
|
|
// Сюда качаются архивы Temurin до распаковки.
|
|
|
|
|
QString javaDownloadDir();
|
|
|
|
|
|
2026-08-24 21:09:52 +03:00
|
|
|
// <root>/cache — данные, которые можно удалить без потерь.
|
|
|
|
|
QString cacheDir();
|
|
|
|
|
|
|
|
|
|
// Слепок манифеста версий Mojang с отметкой времени.
|
|
|
|
|
QString versionManifestFile();
|
|
|
|
|
|
2026-08-31 00:59:14 +03:00
|
|
|
// Слепок каталога сезонных сборок с отметкой времени.
|
|
|
|
|
QString seasonalCatalogFile();
|
|
|
|
|
|
2026-08-27 09:21:51 +03:00
|
|
|
// Слепок списка версий одного модлоадера: loaderKey — forge|fabric|neoforge|quilt.
|
|
|
|
|
QString loaderCacheFile(const QString &loaderKey);
|
|
|
|
|
|
|
|
|
|
// Сюда качаются installer.jar модлоадеров.
|
|
|
|
|
QString loaderDownloadDir();
|
|
|
|
|
|
2026-08-23 03:30:31 +03:00
|
|
|
// Создаёт папку лаунчера, если её нет. Вызывается при каждом запуске и перед
|
|
|
|
|
// каждой записью. false и текст в error, если папки нет или в неё не пишется.
|
|
|
|
|
bool ensureRootExists(QString *error = nullptr);
|
|
|
|
|
|
|
|
|
|
} // namespace LauncherPaths
|