| 153 | } |
| 154 | |
| 155 | void MojangVersionFormat::readVersionProperties(const QJsonObject& in, VersionFile* out) |
| 156 | { |
| 157 | Bits::readString(in, "id", out->minecraftVersion); |
| 158 | Bits::readString(in, "mainClass", out->mainClass); |
| 159 | Bits::readString(in, "minecraftArguments", out->minecraftArguments); |
| 160 | Bits::readString(in, "type", out->type); |
| 161 | |
| 162 | Bits::readString(in, "assets", out->assets); |
| 163 | if (in.contains("assetIndex")) { |
| 164 | out->mojangAssetIndex = assetIndexFromJson(requireObject(in, "assetIndex")); |
| 165 | } else if (!out->assets.isNull()) { |
| 166 | out->mojangAssetIndex = std::make_shared<MojangAssetIndexInfo>(out->assets); |
| 167 | } |
| 168 | |
| 169 | out->releaseTime = timeFromS3Time(in.value("releaseTime").toString("")); |
| 170 | out->updateTime = timeFromS3Time(in.value("time").toString("")); |
| 171 | |
| 172 | if (in.contains("minimumLauncherVersion")) { |
| 173 | out->minimumLauncherVersion = requireInteger(in.value("minimumLauncherVersion")); |
| 174 | if (out->minimumLauncherVersion > CURRENT_MINIMUM_LAUNCHER_VERSION) { |
| 175 | out->addProblem(ProblemSeverity::Warning, QObject::tr("The 'minimumLauncherVersion' value of this version (%1) is higher than " |
| 176 | "supported by %3 (%2). It might not work properly!") |
| 177 | .arg(out->minimumLauncherVersion) |
| 178 | .arg(CURRENT_MINIMUM_LAUNCHER_VERSION) |
| 179 | .arg(BuildConfig.LAUNCHER_DISPLAYNAME)); |
| 180 | } |
| 181 | } |
| 182 | |
| 183 | if (in.contains("compatibleJavaMajors")) { |
| 184 | for (auto compatible : requireArray(in.value("compatibleJavaMajors"))) { |
| 185 | out->compatibleJavaMajors.append(requireInteger(compatible)); |
| 186 | } |
| 187 | } |
| 188 | if (in.contains("compatibleJavaName")) { |
| 189 | out->compatibleJavaName = requireString(in.value("compatibleJavaName")); |
| 190 | } |
| 191 | |
| 192 | if (in.contains("downloads")) { |
| 193 | auto downloadsObj = requireObject(in, "downloads"); |
| 194 | for (auto iter = downloadsObj.begin(); iter != downloadsObj.end(); iter++) { |
| 195 | auto classifier = iter.key(); |
| 196 | auto classifierObj = requireObject(iter.value()); |
| 197 | out->mojangDownloads[classifier] = downloadInfoFromJson(classifierObj); |
| 198 | } |
| 199 | } |
| 200 | } |
| 201 | |
| 202 | VersionFilePtr MojangVersionFormat::versionFileFromJson(const QJsonDocument& doc, const QString& filename) |
| 203 | { |
nothing calls this directly
no test coverage detected