ShatteredPrism/launcher/minecraft/auth/AuthStep.h
Trial97 80d8e3ee06
Remove katabasis
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
2024-05-15 12:53:06 +03:00

44 lines
1.2 KiB
C++

#pragma once
#include <QList>
#include <QNetworkReply>
#include <QObject>
#include "QObjectPtr.h"
#include "minecraft/auth/AccountData.h"
/**
* Enum for describing the state of the current task.
* Used by the getStateMessage function to determine what the status message should be.
*/
enum class AccountTaskState {
STATE_CREATED,
STATE_WORKING,
STATE_SUCCEEDED,
STATE_DISABLED, //!< MSA Client ID has changed. Tell user to reloginn
STATE_FAILED_SOFT, //!< soft failure. authentication went through partially
STATE_FAILED_HARD, //!< hard failure. main tokens are invalid
STATE_FAILED_GONE, //!< hard failure. main tokens are invalid, and the account no longer exists
STATE_OFFLINE //!< soft failure. authentication failed in the first step in a 'soft' way
};
class AuthStep : public QObject {
Q_OBJECT
public:
using Ptr = shared_qobject_ptr<AuthStep>;
explicit AuthStep(AccountData* data) : QObject(nullptr), m_data(data){};
virtual ~AuthStep() noexcept = default;
virtual QString describe() = 0;
public slots:
virtual void perform() = 0;
signals:
void finished(AccountTaskState resultingState, QString message);
protected:
AccountData* m_data;
};