From 3db98eaf0cacd93751148a3a27789e426cc30b2b Mon Sep 17 00:00:00 2001 From: Tixx <83774803+WiserTixx@users.noreply.github.com> Date: Sun, 5 Oct 2025 15:13:49 +0200 Subject: [PATCH] Provide more info if the launcher update fails Also prevents the launcher from bricking itself (again) --- src/Startup.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Startup.cpp b/src/Startup.cpp index e8af22a..7e39a35 100644 --- a/src/Startup.cpp +++ b/src/Startup.cpp @@ -211,21 +211,24 @@ void CheckForUpdates(const std::string& CV) { error("Auto update is NOT implemented for the Linux version. Please update manually ASAP as updates contain security patches."); #else info("Downloading Launcher update " + LatestHash); - HTTP::Download( + if (HTTP::Download( "https://backend.beammp.com/builds/launcher?download=true" "&pk=" + PublicKey + "&branch=" + Branch, - GetBP() / (beammp_wide("new_") + GetEN()), LatestHash); - std::error_code ec; - fs::remove(Back, ec); - if (ec == std::errc::permission_denied) { - error("Failed to remove old backup file: " + ec.message() + ". Using alternative name."); - fs::rename(BP, Back + beammp_wide(".") + Utils::ToWString(FileHash.substr(0, 8))); + GetBP() / (beammp_wide("new_") + GetEN()), LatestHash)) { + std::error_code ec; + fs::remove(Back, ec); + if (ec == std::errc::permission_denied) { + error("Failed to remove old backup file: " + ec.message() + ". Using alternative name."); + fs::rename(BP, Back + beammp_wide(".") + Utils::ToWString(FileHash.substr(0, 8))); + } else { + fs::rename(BP, Back); + } + fs::rename(GetBP() / (beammp_wide("new_") + GetEN()), BP); + URelaunch(); } else { - fs::rename(BP, Back); + throw std::runtime_error("Failed to download the launcher update! Please try manually updating it, https://docs.beammp.com/FAQ/Update-launcher/"); } - fs::rename(GetBP() / (beammp_wide("new_") + GetEN()), BP); - URelaunch(); #endif } else { warn("Launcher update was found, but not updating because --no-update or --dev was specified.");