#pragma once #include #include #include #include "QObjectPtr.h" #include "minecraft/auth/AccountData.h" #include "AccountTask.h" class AuthStep : public QObject { Q_OBJECT public: using Ptr = shared_qobject_ptr; public: explicit AuthStep(AccountData *data); virtual ~AuthStep() noexcept; virtual QString describe() = 0; public slots: virtual void perform() = 0; virtual void rehydrate() = 0; signals: void finished(AccountTaskState resultingState, QString message); void showVerificationUriAndCode(const QUrl &uri, const QString &code, int expiresIn); void hideVerificationUriAndCode(); protected: AccountData *m_data; };