From 443850196d126f93d7c79f94a10237d22192a601 Mon Sep 17 00:00:00 2001 From: galeon Date: Sun, 11 Oct 2026 22:32:58 +0300 Subject: [PATCH] fix bug with launcher version --- gamelauncher.h | 2 +- launcherbackend.cpp | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gamelauncher.h b/gamelauncher.h index ec8c1d1..167f30f 100644 --- a/gamelauncher.h +++ b/gamelauncher.h @@ -34,7 +34,7 @@ struct LaunchOptions QString authlibInjectorApi = QStringLiteral("ely.by"); QString launcherName = QStringLiteral("BiLauncher"); - QString launcherVersion = QStringLiteral("1.0"); + QString launcherVersion = QStringLiteral(LAUNCHER_VERSION); }; class GameLauncher : public QObject diff --git a/launcherbackend.cpp b/launcherbackend.cpp index f7202bc..11956bb 100644 --- a/launcherbackend.cpp +++ b/launcherbackend.cpp @@ -18,6 +18,7 @@ #include "seasonalbuildservice.h" #include "seasonalpackdownloader.h" +#include #include #include #include @@ -433,7 +434,10 @@ void LauncherBackend::addCustomBuild(const QString &name, m_builds.append(build); saveCustomBuilds(); emit customBuildsChanged(); - maybeInstall(launchVersionIdOf(m_builds.last())); + // Без версии игры ставить нечего: launchVersionIdOf() вернул бы имя сборки, + // и установщик пошёл бы искать в манифесте «Сборка 1». + if (!minecraftVersion.trimmed().isEmpty()) + maybeInstall(minecraftVersion.trimmed()); } void LauncherBackend::updateProfile(int index, @@ -1463,8 +1467,8 @@ void LauncherBackend::continueLaunch(const AuthResult &auth) options.windowHeight = settingInt(m_settings, QStringLiteral("windowHeight"), 0); options.fullscreen = m_settings.value(QStringLiteral("fullscreen")).toBool(); options.serverAddress = build.serverUrl.trimmed(); - options.launcherName = m_settings.value(QStringLiteral("launcherName")).toString(); - options.launcherVersion = m_settings.value(QStringLiteral("launcherVersion")).toString(); + options.launcherName = QCoreApplication::applicationName(); + options.launcherVersion = QCoreApplication::applicationVersion(); const QString extra = m_settings.value(QStringLiteral("jvmArgs")).toString().trimmed(); if (!extra.isEmpty()) @@ -2543,8 +2547,6 @@ void LauncherBackend::loadSettings() {QStringLiteral("fullscreen"), false}, // Язык интерфейса: "system" — по системной локали. {QStringLiteral("language"), QStringLiteral("system")}, - {QStringLiteral("launcherName"), QStringLiteral("BiLauncher")}, - {QStringLiteral("launcherVersion"), QStringLiteral("1.0")}, {QStringLiteral("activeBuildId"), 0}, // Сервер готовых сборок. В интерфейс не вынесен: менять его // приходится только при отладке против локального сервера. @@ -2553,6 +2555,12 @@ void LauncherBackend::loadSettings() const QJsonObject stored = readObjectFile(LauncherPaths::settingsFile()); for (auto it = stored.constBegin(); it != stored.constEnd(); ++it) m_settings.insert(it.key(), it.value().toVariant()); + + // Имя и версия лаунчера раньше хранились здесь со значением "1.0" и не + // обновлялись вместе с программой. Теперь они берутся из QCoreApplication, + // а старые ключи вычищаются из файла при следующем сохранении. + m_settings.remove(QStringLiteral("launcherName")); + m_settings.remove(QStringLiteral("launcherVersion")); } void LauncherBackend::saveSettings()