add launcher folder and some checks to it

This commit is contained in:
2026-08-23 01:20:18 +03:00
parent 2c4b594c90
commit af4230500e
13 changed files with 328 additions and 169 deletions
+14 -14
View File
@@ -9,34 +9,34 @@
// Одна библиотека из client.json уже с разрешёнными правилами.
struct MinecraftLibrary
{
QString name; // Maven-координаты: org.lwjgl:lwjgl:3.3.1:natives-windows
QString path; // Путь относительно .minecraft/libraries
QString url; // Откуда качать, если файла нет (может быть пустым)
QString name; // Maven-координаты: org.lwjgl:lwjgl:3.3.1:natives-windows
QString path; // Путь относительно .minecraft/libraries
QString url; // Откуда качать, если файла нет (может быть пустым)
QString sha1;
qint64 size = 0;
bool native = false; // Распаковывается в natives, а не кладётся в classpath
QStringList extractExclude; // Префиксы, которые не распаковываем
bool native = false; // Распаковывается в natives, а не кладётся в classpath
QStringList extractExclude; // Префиксы, которые не распаковываем
};
// client.json, «схлопнутый» по всей цепочке inheritsFrom.
struct MinecraftVersion
{
QString id; // Имя папки в versions, оно же --version
QString id; // Имя папки в versions, оно же --version
QString mainClass;
QString type; // release / snapshot / modified — идёт в --versionType
QString assetIndexId; // --assetIndex
QString assetsKind; // Поле "assets": legacy, pre-1.6 либо тот же id
QString clientJarPath; // Абсолютный путь к <id>.jar (может лежать у родителя)
QString type; // release / snapshot / modified — идёт в --versionType
QString assetIndexId; // --assetIndex
QString assetsKind; // Поле "assets": legacy, pre-1.6 либо тот же id
QString clientJarPath; // Абсолютный путь к <id>.jar (может лежать у родителя)
int javaMajor = 8;
QStringList jvmArgs; // Ещё с неподставленными ${...}
QStringList jvmArgs; // Ещё с неподставленными ${...}
QStringList gameArgs;
QList<MinecraftLibrary> libraries;
QString loggingArgument; // -Dlog4j.configurationFile=${path}
QString loggingConfigPath; // Абсолютный путь к xml, пустой если конфига нет
QString loggingArgument; // -Dlog4j.configurationFile=${path}
QString loggingConfigPath; // Абсолютный путь к xml, пустой если конфига нет
bool supportsQuickPlay = false; // 1.20+ понимает --quickPlayMultiplayer
bool supportsQuickPlay = false; // 1.20+ понимает --quickPlayMultiplayer
bool hasCustomResolutionArgs = false;
bool isValid() const { return !id.isEmpty() && !mainClass.isEmpty(); }