summaryrefslogtreecommitdiffstats
path: root/logic/auth/MojangAccount.cpp
diff options
context:
space:
mode:
authorSky <git@bunnies.cc>2013-12-13 14:58:35 +0000
committerSky <git@bunnies.cc>2013-12-13 14:58:35 +0000
commitb69351d50d07bab595945d064e4d29b123c19105 (patch)
tree5cf6be9ef49ad10a211a0544e5481f36e49a306a /logic/auth/MojangAccount.cpp
parent979946b7bb2cec808198f9194169ea08cce8bb00 (diff)
parent0af6f96c3de54c940799826ff6f3c89bb46f1540 (diff)
downloadMultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar.gz
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar.lz
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar.xz
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.zip
Merge branch 'develop' of github.com:Drayshak/MultiMC5 into develop
Diffstat (limited to 'logic/auth/MojangAccount.cpp')
-rw-r--r--logic/auth/MojangAccount.cpp32
1 files changed, 31 insertions, 1 deletions
diff --git a/logic/auth/MojangAccount.cpp b/logic/auth/MojangAccount.cpp
index b1acfb25..185c735c 100644
--- a/logic/auth/MojangAccount.cpp
+++ b/logic/auth/MojangAccount.cpp
@@ -23,6 +23,7 @@
#include <QJsonObject>
#include <QJsonArray>
#include <QRegExp>
+#include <QStringList>
#include <logger/QsLog.h>
@@ -52,15 +53,30 @@ MojangAccountPtr MojangAccount::loadFromJson(const QJsonObject &object)
QJsonObject profileObject = profileVal.toObject();
QString id = profileObject.value("id").toString("");
QString name = profileObject.value("name").toString("");
+ bool legacy = profileObject.value("legacy").toBool(false);
if (id.isEmpty() || name.isEmpty())
{
QLOG_WARN() << "Unable to load a profile because it was missing an ID or a name.";
continue;
}
- profiles.append({id, name});
+ profiles.append({id, name, legacy});
}
MojangAccountPtr account(new MojangAccount());
+ if(object.value("user").isObject())
+ {
+ User u;
+ QJsonObject userStructure = object.value("user").toObject();
+ u.id = userStructure.value("id").toString();
+ QJsonObject propMap = userStructure.value("properties").toObject();
+ for(auto key: propMap.keys())
+ {
+ auto values = propMap.operator[](key).toArray();
+ for(auto value: values)
+ u.properties.insert(key, value.toString());
+ }
+ account->m_user = u;
+ }
account->m_username = username;
account->m_clientToken = clientToken;
account->m_accessToken = accessToken;
@@ -95,10 +111,24 @@ QJsonObject MojangAccount::saveToJson() const
QJsonObject profileObj;
profileObj.insert("id", profile.id);
profileObj.insert("name", profile.name);
+ profileObj.insert("legacy", profile.legacy);
profileArray.append(profileObj);
}
json.insert("profiles", profileArray);
+ QJsonObject userStructure;
+ {
+ userStructure.insert("id", m_user.id);
+ QJsonObject userAttrs;
+ for(auto key: m_user.properties.keys())
+ {
+ auto array = QJsonArray::fromStringList(m_user.properties.values(key));
+ userAttrs.insert(key, array);
+ }
+ userStructure.insert("properties", userAttrs);
+ }
+ json.insert("user", userStructure);
+
if (m_currentProfile != -1)
json.insert("activeProfile", currentProfile()->id);