Skip to content

Commit

Permalink
Merge pull request #33 from JinyiSa/develop
Browse files Browse the repository at this point in the history
A simple workaround for multi-profile authlib-injector servers
  • Loading branch information
evan-goode authored Sep 19, 2024
2 parents 99cc76c + dffe14b commit 441d471
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions launcher/minecraft/auth/Yggdrasil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,21 @@ void Yggdrasil::processResponse(QJsonObject responseData)
m_data->yggdrasilToken.issueInstant = QDateTime::currentDateTimeUtc();

// Get UUID here since we need it for later
// FIXME: Here is a simple workaround for now,, which uses the first available profile when selectedProfile is not provided
auto profile = responseData.value("selectedProfile");
if (!profile.isObject()) {
changeState(AccountTaskState::STATE_FAILED_HARD, tr("Authentication server didn't send a selected profile."));
return;
auto profiles = responseData.value("availableProfiles");
if (!profiles.isArray()) {
changeState(AccountTaskState::STATE_FAILED_HARD, tr("Authentication server didn't send available profiles."));
return;
} else {
if (profiles.toArray().isEmpty()) {
changeState(AccountTaskState::STATE_FAILED_HARD, tr("Account has no available profile."));
return;
} else {
profile = profiles.toArray().first();
}
}
}

auto profileObj = profile.toObject();
Expand Down

0 comments on commit 441d471

Please sign in to comment.