From 14066486d327a8984cf239fc12f4d9180bbd76a2 Mon Sep 17 00:00:00 2001 From: so5iso4ka Date: Mon, 10 Aug 2026 16:59:23 +0300 Subject: [PATCH] fix(auth): treat MSA accounts that do not own the game as invalid Signed-off-by: so5iso4ka --- launcher/LaunchController.cpp | 3 +-- launcher/minecraft/auth/MinecraftAccount.h | 2 +- launcher/ui/pages/instance/VersionPage.cpp | 9 --------- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/launcher/LaunchController.cpp b/launcher/LaunchController.cpp index 39066f8c4..1bda4a111 100644 --- a/launcher/LaunchController.cpp +++ b/launcher/LaunchController.cpp @@ -97,8 +97,7 @@ void LaunchController::decideAccount() if (!accounts->anyAccountIsValid()) { // Tell the user they need to log in at least one account in order to play. auto reply = CustomMessageBox::selectable(m_parentWidget, tr("No Accounts"), - tr("In order to play Minecraft, you must have at least one Microsoft " - "account which owns Minecraft logged in. " + tr("In order to play Minecraft, you must have at least one account logged in. " "Would you like to open the account manager to add an account now?"), QMessageBox::Information, QMessageBox::Yes | QMessageBox::No) ->exec(); diff --git a/launcher/minecraft/auth/MinecraftAccount.h b/launcher/minecraft/auth/MinecraftAccount.h index f5f2fe8e7..4983b83fa 100644 --- a/launcher/minecraft/auth/MinecraftAccount.h +++ b/launcher/minecraft/auth/MinecraftAccount.h @@ -125,7 +125,7 @@ class MinecraftAccount : public QObject, public Usable { AccountType accountType() const noexcept { return data.type; } - bool ownsMinecraft() const { return true; } + bool ownsMinecraft() const { return data.type != AccountType::MSA || data.minecraftEntitlement.ownsMinecraft; } bool hasProfile() const { return data.profileId().size() != 0; } diff --git a/launcher/ui/pages/instance/VersionPage.cpp b/launcher/ui/pages/instance/VersionPage.cpp index fea759bb2..e49bdda32 100644 --- a/launcher/ui/pages/instance/VersionPage.cpp +++ b/launcher/ui/pages/instance/VersionPage.cpp @@ -422,15 +422,6 @@ void VersionPage::on_actionChange_version_triggered() void VersionPage::on_actionDownload_All_triggered() { - if (!APPLICATION->accounts()->anyAccountIsValid()) { - CustomMessageBox::selectable(this, tr("Error"), - tr("Cannot download Minecraft or update instances unless you have at least " - "one account added.\nPlease add a Microsoft account."), - QMessageBox::Warning) - ->show(); - return; - } - auto updateTasks = m_inst->createUpdateTask(); if (updateTasks.isEmpty()) { return;