aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/auth/MinecraftAccount.h
diff options
context:
space:
mode:
authorTrial97 <alexandru.tripon97@gmail.com>2023-08-05 19:04:53 +0300
committerTrial97 <alexandru.tripon97@gmail.com>2023-08-05 19:04:53 +0300
commit91eb30f03795921b48360b79bdb739dcd0f10f17 (patch)
tree1a2fccbbbf4751cf2cf6f6418cb525dcee5f2acd /launcher/minecraft/auth/MinecraftAccount.h
parenta3ffa6455021b69bd1940b65fefb3b6177c96730 (diff)
parentae793f6cf11658c9abc5111e82d5ba7b3e6af127 (diff)
downloadPrismLauncher-91eb30f03795921b48360b79bdb739dcd0f10f17.tar.gz
PrismLauncher-91eb30f03795921b48360b79bdb739dcd0f10f17.tar.bz2
PrismLauncher-91eb30f03795921b48360b79bdb739dcd0f10f17.zip
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into pack_changelog
Diffstat (limited to 'launcher/minecraft/auth/MinecraftAccount.h')
-rw-r--r--launcher/minecraft/auth/MinecraftAccount.h122
1 files changed, 44 insertions, 78 deletions
diff --git a/launcher/minecraft/auth/MinecraftAccount.h b/launcher/minecraft/auth/MinecraftAccount.h
index 0dcaeb53..f04f947f 100644
--- a/launcher/minecraft/auth/MinecraftAccount.h
+++ b/launcher/minecraft/auth/MinecraftAccount.h
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
- * PolyMC - Minecraft Launcher
+ * Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@@ -35,20 +35,20 @@
#pragma once
-#include <QObject>
-#include <QString>
-#include <QList>
#include <QJsonObject>
-#include <QPair>
+#include <QList>
#include <QMap>
+#include <QObject>
+#include <QPair>
#include <QPixmap>
+#include <QString>
#include <memory>
-#include "AuthSession.h"
-#include "Usable.h"
#include "AccountData.h"
+#include "AuthSession.h"
#include "QObjectPtr.h"
+#include "Usable.h"
class Task;
class AccountTask;
@@ -64,8 +64,7 @@ Q_DECLARE_METATYPE(MinecraftAccountPtr)
* but we might as well add some things for it in Prism Launcher right now so
* we don't have to rip the code to pieces to add it later.
*/
-struct AccountProfile
-{
+struct AccountProfile {
QString id;
QString name;
bool legacy;
@@ -77,32 +76,30 @@ struct AccountProfile
* Said information may include things such as that account's username, client token, and access
* token if the user chose to stay logged in.
*/
-class MinecraftAccount :
- public QObject,
- public Usable
-{
+class MinecraftAccount : public QObject, public Usable {
Q_OBJECT
-public: /* construction */
+ public: /* construction */
//! Do not copy accounts. ever.
- explicit MinecraftAccount(const MinecraftAccount &other, QObject *parent) = delete;
+ explicit MinecraftAccount(const MinecraftAccount& other, QObject* parent) = delete;
//! Default constructor
- explicit MinecraftAccount(QObject *parent = 0);
+ explicit MinecraftAccount(QObject* parent = 0);
- static MinecraftAccountPtr createFromUsername(const QString &username);
+ static MinecraftAccountPtr createFromUsername(const QString& username);
static MinecraftAccountPtr createBlankMSA();
- static MinecraftAccountPtr createOffline(const QString &username);
+ static MinecraftAccountPtr createOffline(const QString& username);
- static MinecraftAccountPtr loadFromJsonV2(const QJsonObject &json);
- static MinecraftAccountPtr loadFromJsonV3(const QJsonObject &json);
+ static MinecraftAccountPtr loadFromJsonV2(const QJsonObject& json);
+ static MinecraftAccountPtr loadFromJsonV3(const QJsonObject& json);
+
+ static QUuid uuidFromUsername(QString username);
//! Saves a MinecraftAccount to a JSON object and returns it.
QJsonObject saveToJson() const;
-public: /* manipulation */
-
+ public: /* manipulation */
/**
* Attempt to login. Empty password means we use the token.
* If the attempt fails because we already are performing some task, it returns false.
@@ -117,70 +114,46 @@ public: /* manipulation */
shared_qobject_ptr<AccountTask> currentTask();
-public: /* queries */
- QString internalId() const {
- return data.internalId;
- }
+ public: /* queries */
+ QString internalId() const { return data.internalId; }
- QString accountDisplayString() const {
- return data.accountDisplayString();
- }
+ QString accountDisplayString() const { return data.accountDisplayString(); }
- QString mojangUserName() const {
- return data.userName();
- }
+ QString mojangUserName() const { return data.userName(); }
- QString accessToken() const {
- return data.accessToken();
- }
+ QString accessToken() const { return data.accessToken(); }
- QString profileId() const {
- return data.profileId();
- }
+ QString profileId() const { return data.profileId(); }
- QString profileName() const {
- return data.profileName();
- }
+ QString profileName() const { return data.profileName(); }
bool isActive() const;
- bool canMigrate() const {
- return data.canMigrateToMSA;
- }
+ bool canMigrate() const { return data.canMigrateToMSA; }
- bool isMSA() const {
- return data.type == AccountType::MSA;
- }
+ bool isMSA() const { return data.type == AccountType::MSA; }
- bool isOffline() const {
- return data.type == AccountType::Offline;
- }
+ bool isOffline() const { return data.type == AccountType::Offline; }
- bool ownsMinecraft() const {
- return data.minecraftEntitlement.ownsMinecraft;
- }
+ bool ownsMinecraft() const { return data.minecraftEntitlement.ownsMinecraft; }
- bool hasProfile() const {
- return data.profileId().size() != 0;
- }
+ bool hasProfile() const { return data.profileId().size() != 0; }
- QString typeString() const {
- switch(data.type) {
+ QString typeString() const
+ {
+ switch (data.type) {
case AccountType::Mojang: {
- if(data.legacy) {
+ if (data.legacy) {
return "legacy";
}
return "mojang";
- }
- break;
+ } break;
case AccountType::MSA: {
return "msa";
- }
- break;
+ } break;
case AccountType::Offline: {
return "offline";
- }
- break;
+ } break;
default: {
return "unknown";
}
@@ -192,19 +165,15 @@ public: /* queries */
//! Returns the current state of the account
AccountState accountState() const;
- AccountData * accountData() {
- return &data;
- }
+ AccountData* accountData() { return &data; }
bool shouldRefresh() const;
void fillSession(AuthSessionPtr session);
- QString lastError() const {
- return data.lastError();
- }
+ QString lastError() const { return data.lastError(); }
-signals:
+ signals:
/**
* This signal is emitted when the account changes
*/
@@ -214,20 +183,17 @@ signals:
// TODO: better signalling for the various possible state changes - especially errors
-protected: /* variables */
+ protected: /* variables */
AccountData data;
// current task we are executing here
shared_qobject_ptr<AccountTask> m_currentTask;
-protected: /* methods */
-
+ protected: /* methods */
void incrementUses() override;
void decrementUses() override;
-private
-slots:
+ private slots:
void authSucceeded();
void authFailed(QString reason);
};
-