fix #23 by adding validating on first startup and close #30 by adding
tests / package-smoke-linux (push) Skipped
tests / package-smoke-windows (push) Skipped
tests / package-smoke-macos (push) Skipped
tests / macos (push) Successful in 1m20s
tests / linux (push) Successful in 2m14s
tests / windows (push) Failing after 23m21s
tests / package-smoke-linux (push) Skipped
tests / package-smoke-windows (push) Skipped
tests / package-smoke-macos (push) Skipped
tests / macos (push) Successful in 1m20s
tests / linux (push) Successful in 2m14s
tests / windows (push) Failing after 23m21s
version number Signed-off-by: galeon <dertiellis@gmail.com>
This commit is contained in:
1 parent
bc205fa2e7
commit
1d781b5324
19 files changed
+805
-10
No files matched your search
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QString>
|
||||
|
||||
#include <optional>
|
||||
|
||||
// Что уже разложено в папке игры, когда лаунчер запускают впервые. Только
|
||||
// читает файлы: .minecraft не меняется ни при каком исходе.
|
||||
namespace GameDirImport {
|
||||
|
||||
// Модлоадер, найденный в описании профиля versions/<id>/<id>.json.
|
||||
struct LoaderInfo
|
||||
{
|
||||
QString key; // "" | forge | fabric | neoforge | quilt
|
||||
QString version; // в том же виде, что и в каталоге ModLoaderVersionService
|
||||
};
|
||||
|
||||
// Сборка, которую стоит завести под содержимое папки игры.
|
||||
struct Detected
|
||||
{
|
||||
QString minecraftVersion; // inheritsFrom профиля, а без него — сам id
|
||||
QString resolvedVersionId; // id профиля, если он наследует другую версию
|
||||
QString loader;
|
||||
QString loaderVersion;
|
||||
// Откуда взята версия: "launcher_profiles", "versions" или "content" —
|
||||
// версии не нашлось, но моды или миры есть. Для тестов и отладки.
|
||||
QString source;
|
||||
};
|
||||
|
||||
// Модлоадер по библиотекам профиля, а если по ним не понять — по его id.
|
||||
// Незнакомый профиль (OptiFine, LabyMod) даёт пустой key.
|
||||
LoaderInfo loaderOf(const QJsonObject &versionJson);
|
||||
|
||||
// nullopt — в папке нет ни установленных версий, ни модов, миров и настроек игры.
|
||||
std::optional<Detected> detect(const QString &gameDir);
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user