| 72 | } |
| 73 | |
| 74 | void profileToJSONV3(QJsonObject &parent, MinecraftProfile p, const char * tokenName) { |
| 75 | if(p.id.isEmpty()) { |
| 76 | return; |
| 77 | } |
| 78 | QJsonObject out; |
| 79 | out["id"] = QJsonValue(p.id); |
| 80 | out["name"] = QJsonValue(p.name); |
| 81 | if(!p.currentCape.isEmpty()) { |
| 82 | out["cape"] = p.currentCape; |
| 83 | } |
| 84 | |
| 85 | { |
| 86 | QJsonObject skinObj; |
| 87 | skinObj["id"] = p.skin.id; |
| 88 | skinObj["url"] = p.skin.url; |
| 89 | skinObj["variant"] = p.skin.variant; |
| 90 | if(p.skin.data.size()) { |
| 91 | skinObj["data"] = QString::fromLatin1(p.skin.data.toBase64()); |
| 92 | } |
| 93 | out["skin"] = skinObj; |
| 94 | } |
| 95 | |
| 96 | QJsonArray capesArray; |
| 97 | for(auto & cape: p.capes) { |
| 98 | QJsonObject capeObj; |
| 99 | capeObj["id"] = cape.id; |
| 100 | capeObj["url"] = cape.url; |
| 101 | capeObj["alias"] = cape.alias; |
| 102 | if(cape.data.size()) { |
| 103 | capeObj["data"] = QString::fromLatin1(cape.data.toBase64()); |
| 104 | } |
| 105 | capesArray.push_back(capeObj); |
| 106 | } |
| 107 | out["capes"] = capesArray; |
| 108 | parent[tokenName] = out; |
| 109 | } |
| 110 | |
| 111 | MinecraftProfile profileFromJSONV3(const QJsonObject &parent, const char * tokenName) { |
| 112 | MinecraftProfile out; |