GH-4217 Add support for GamePass accounts and MC profile setup

- We now use the new endpoint for loggiong in via XBox tokens (/launcher/login)
- We now check game entitlements instead of only relying on MC profile presence
- Accounts can now be added even when they do not have a profile
- The launcher will guide you through selecting a Minecraft name if you don't have one yet
This commit is contained in:
Petr Mrázek
2021-11-10 03:02:51 +01:00
parent 32f9c61c6e
commit 475d949a1e
17 changed files with 956 additions and 340 deletions

View File

@@ -63,6 +63,9 @@ protected:
void doXBoxProfile();
Q_SLOT void onXBoxProfileDone(QNetworkReply::NetworkError, QByteArray, QList<QNetworkReply::RawHeaderPair>);
void doEntitlements();
Q_SLOT void onEntitlementsDone(QNetworkReply::NetworkError, QByteArray, QList<QNetworkReply::RawHeaderPair>);
void doMinecraftProfile();
Q_SLOT void onMinecraftProfileDone(QNetworkReply::NetworkError, QByteArray, QList<QNetworkReply::RawHeaderPair>);
@@ -72,6 +75,8 @@ protected:
void doGetSkin();
Q_SLOT void onSkinDone(QNetworkReply::NetworkError, QByteArray, QList<QNetworkReply::RawHeaderPair>);
void succeed();
void failResult(bool & flag);
void succeedResult(bool & flag);
void checkResult();
@@ -88,6 +93,7 @@ protected:
int m_requestsDone = 0;
bool m_xboxProfileSucceeded = false;
bool m_mcAuthSucceeded = false;
QString entitlementsRequestId;
QSet<int64_t> stsErrors;
bool stsFailed = false;