diff options
author | Petr Mrázek <peterix@gmail.com> | 2021-12-04 01:18:05 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2021-12-04 01:18:05 +0100 |
commit | 3c46d8a412956a759f61ae802c540ef72d00b35d (patch) | |
tree | f16564ba6be96b68ba5257a982c144320fff7911 /launcher/minecraft/services | |
parent | ffcef673de9fe848a92d23e02a2abed8df16eb9f (diff) | |
download | PrismLauncher-3c46d8a412956a759f61ae802c540ef72d00b35d.tar.gz PrismLauncher-3c46d8a412956a759f61ae802c540ef72d00b35d.tar.bz2 PrismLauncher-3c46d8a412956a759f61ae802c540ef72d00b35d.zip |
GH-4071 Heavily refactor and rearchitect account system
This makes the account system much more modular
and makes it treat errors as something recoverable,
unless they come directly from the MSA refresh token
becoming invalid.
Diffstat (limited to 'launcher/minecraft/services')
-rw-r--r-- | launcher/minecraft/services/CapeChange.cpp | 8 | ||||
-rw-r--r-- | launcher/minecraft/services/CapeChange.h | 5 | ||||
-rw-r--r-- | launcher/minecraft/services/SkinDelete.cpp | 6 | ||||
-rw-r--r-- | launcher/minecraft/services/SkinDelete.h | 6 | ||||
-rw-r--r-- | launcher/minecraft/services/SkinUpload.cpp | 6 | ||||
-rw-r--r-- | launcher/minecraft/services/SkinUpload.h | 5 |
6 files changed, 16 insertions, 20 deletions
diff --git a/launcher/minecraft/services/CapeChange.cpp b/launcher/minecraft/services/CapeChange.cpp index d411965a..e49c166a 100644 --- a/launcher/minecraft/services/CapeChange.cpp +++ b/launcher/minecraft/services/CapeChange.cpp @@ -5,15 +5,15 @@ #include "Application.h" -CapeChange::CapeChange(QObject *parent, AuthSessionPtr session, QString cape) - : Task(parent), m_capeId(cape), m_session(session) +CapeChange::CapeChange(QObject *parent, QString token, QString cape) + : Task(parent), m_capeId(cape), m_token(token) { } void CapeChange::setCape(QString& cape) { QNetworkRequest request(QUrl("https://api.minecraftservices.com/minecraft/profile/capes/active")); auto requestString = QString("{\"capeId\":\"%1\"}").arg(m_capeId); - request.setRawHeader("Authorization", QString("Bearer %1").arg(m_session->access_token).toLocal8Bit()); + request.setRawHeader("Authorization", QString("Bearer %1").arg(m_token).toLocal8Bit()); QNetworkReply *rep = APPLICATION->network()->put(request, requestString.toUtf8()); setStatus(tr("Equipping cape")); @@ -27,7 +27,7 @@ void CapeChange::setCape(QString& cape) { void CapeChange::clearCape() { QNetworkRequest request(QUrl("https://api.minecraftservices.com/minecraft/profile/capes/active")); auto requestString = QString("{\"capeId\":\"%1\"}").arg(m_capeId); - request.setRawHeader("Authorization", QString("Bearer %1").arg(m_session->access_token).toLocal8Bit()); + request.setRawHeader("Authorization", QString("Bearer %1").arg(m_token).toLocal8Bit()); QNetworkReply *rep = APPLICATION->network()->deleteResource(request); setStatus(tr("Removing cape")); diff --git a/launcher/minecraft/services/CapeChange.h b/launcher/minecraft/services/CapeChange.h index c04ad8c7..185d69b6 100644 --- a/launcher/minecraft/services/CapeChange.h +++ b/launcher/minecraft/services/CapeChange.h @@ -3,7 +3,6 @@ #include <QFile> #include <QtNetwork/QtNetwork> #include <memory> -#include <minecraft/auth/AuthSession.h> #include "tasks/Task.h" #include "QObjectPtr.h" @@ -11,7 +10,7 @@ class CapeChange : public Task { Q_OBJECT public: - CapeChange(QObject *parent, AuthSessionPtr session, QString capeId); + CapeChange(QObject *parent, QString token, QString capeId); virtual ~CapeChange() {} private: @@ -20,7 +19,7 @@ private: private: QString m_capeId; - AuthSessionPtr m_session; + QString m_token; shared_qobject_ptr<QNetworkReply> m_reply; protected: diff --git a/launcher/minecraft/services/SkinDelete.cpp b/launcher/minecraft/services/SkinDelete.cpp index a0b0330c..cce8364e 100644 --- a/launcher/minecraft/services/SkinDelete.cpp +++ b/launcher/minecraft/services/SkinDelete.cpp @@ -5,15 +5,15 @@ #include "Application.h" -SkinDelete::SkinDelete(QObject *parent, AuthSessionPtr session) - : Task(parent), m_session(session) +SkinDelete::SkinDelete(QObject *parent, QString token) + : Task(parent), m_token(token) { } void SkinDelete::executeTask() { QNetworkRequest request(QUrl("https://api.minecraftservices.com/minecraft/profile/skins/active")); - request.setRawHeader("Authorization", QString("Bearer %1").arg(m_session->access_token).toLocal8Bit()); + request.setRawHeader("Authorization", QString("Bearer %1").arg(m_token).toLocal8Bit()); QNetworkReply *rep = APPLICATION->network()->deleteResource(request); m_reply = shared_qobject_ptr<QNetworkReply>(rep); diff --git a/launcher/minecraft/services/SkinDelete.h b/launcher/minecraft/services/SkinDelete.h index 6048b33a..83a84685 100644 --- a/launcher/minecraft/services/SkinDelete.h +++ b/launcher/minecraft/services/SkinDelete.h @@ -2,7 +2,6 @@ #include <QFile> #include <QtNetwork/QtNetwork> -#include <minecraft/auth/AuthSession.h> #include "tasks/Task.h" typedef shared_qobject_ptr<class SkinDelete> SkinDeletePtr; @@ -11,11 +10,11 @@ class SkinDelete : public Task { Q_OBJECT public: - SkinDelete(QObject *parent, AuthSessionPtr session); + SkinDelete(QObject *parent, QString token); virtual ~SkinDelete() = default; private: - AuthSessionPtr m_session; + QString m_token; shared_qobject_ptr<QNetworkReply> m_reply; protected: @@ -25,4 +24,3 @@ public slots: void downloadError(QNetworkReply::NetworkError); void downloadFinished(); }; - diff --git a/launcher/minecraft/services/SkinUpload.cpp b/launcher/minecraft/services/SkinUpload.cpp index e58d32d7..7c2e8337 100644 --- a/launcher/minecraft/services/SkinUpload.cpp +++ b/launcher/minecraft/services/SkinUpload.cpp @@ -16,15 +16,15 @@ QByteArray getVariant(SkinUpload::Model model) { } } -SkinUpload::SkinUpload(QObject *parent, AuthSessionPtr session, QByteArray skin, SkinUpload::Model model) - : Task(parent), m_model(model), m_skin(skin), m_session(session) +SkinUpload::SkinUpload(QObject *parent, QString token, QByteArray skin, SkinUpload::Model model) + : Task(parent), m_model(model), m_skin(skin), m_token(token) { } void SkinUpload::executeTask() { QNetworkRequest request(QUrl("https://api.minecraftservices.com/minecraft/profile/skins")); - request.setRawHeader("Authorization", QString("Bearer %1").arg(m_session->access_token).toLocal8Bit()); + request.setRawHeader("Authorization", QString("Bearer %1").arg(m_token).toLocal8Bit()); QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); QHttpPart skin; diff --git a/launcher/minecraft/services/SkinUpload.h b/launcher/minecraft/services/SkinUpload.h index 2c782e11..2c1f0a2e 100644 --- a/launcher/minecraft/services/SkinUpload.h +++ b/launcher/minecraft/services/SkinUpload.h @@ -3,7 +3,6 @@ #include <QFile> #include <QtNetwork/QtNetwork> #include <memory> -#include <minecraft/auth/AuthSession.h> #include "tasks/Task.h" typedef shared_qobject_ptr<class SkinUpload> SkinUploadPtr; @@ -19,13 +18,13 @@ public: }; // Note this class takes ownership of the file. - SkinUpload(QObject *parent, AuthSessionPtr session, QByteArray skin, Model model = STEVE); + SkinUpload(QObject *parent, QString token, QByteArray skin, Model model = STEVE); virtual ~SkinUpload() {} private: Model m_model; QByteArray m_skin; - AuthSessionPtr m_session; + QString m_token; shared_qobject_ptr<QNetworkReply> m_reply; protected: virtual void executeTask(); |