mirror of
https://github.com/UltimMC/Launcher.git
synced 2025-12-24 12:32:42 +00:00
Initial support for alternative login types
This commit is contained in:
@@ -38,6 +38,7 @@ MojangAccountPtr MojangAccount::loadFromJson(const QJsonObject &object)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QString loginType = object.value("loginType").toString("mojang");
|
||||
QString username = object.value("username").toString("");
|
||||
QString clientToken = object.value("clientToken").toString("");
|
||||
QString accessToken = object.value("accessToken").toString("");
|
||||
@@ -82,6 +83,7 @@ MojangAccountPtr MojangAccount::loadFromJson(const QJsonObject &object)
|
||||
*/
|
||||
account->m_user = u;
|
||||
}
|
||||
account->m_loginType = loginType;
|
||||
account->m_username = username;
|
||||
account->m_clientToken = clientToken;
|
||||
account->m_accessToken = accessToken;
|
||||
@@ -106,6 +108,7 @@ MojangAccountPtr MojangAccount::createFromUsername(const QString &username)
|
||||
QJsonObject MojangAccount::saveToJson() const
|
||||
{
|
||||
QJsonObject json;
|
||||
json.insert("loginType", m_loginType);
|
||||
json.insert("username", m_username);
|
||||
json.insert("clientToken", m_clientToken);
|
||||
json.insert("accessToken", m_accessToken);
|
||||
@@ -174,6 +177,15 @@ std::shared_ptr<YggdrasilTask> MojangAccount::login(AuthSessionPtr session, QStr
|
||||
{
|
||||
Q_ASSERT(m_currentTask.get() == nullptr);
|
||||
|
||||
// Handling alternative account types
|
||||
if (m_loginType == "dummy")
|
||||
{
|
||||
session->status = AuthSession::PlayableOffline;
|
||||
session->auth_server_online = false;
|
||||
fillSession(session);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// take care of the true offline status
|
||||
if (accountStatus() == NotVerified && password.isEmpty())
|
||||
{
|
||||
|
||||
@@ -99,6 +99,11 @@ public: /* manipulation */
|
||||
void invalidateClientToken();
|
||||
|
||||
public: /* queries */
|
||||
const QString &loginType() const
|
||||
{
|
||||
return m_loginType;
|
||||
}
|
||||
|
||||
const QString &username() const
|
||||
{
|
||||
return m_username;
|
||||
@@ -139,6 +144,11 @@ signals:
|
||||
// TODO: better signalling for the various possible state changes - especially errors
|
||||
|
||||
protected: /* variables */
|
||||
// Authentication system used.
|
||||
// Usable values: "mojang", "dummy"
|
||||
QString m_loginType;
|
||||
|
||||
// Username taken by account.
|
||||
QString m_username;
|
||||
|
||||
// Used to identify the client - the user can have multiple clients for the same account
|
||||
|
||||
Reference in New Issue
Block a user