diff options
author | Petr Mrázek <peterix@gmail.com> | 2021-04-01 03:50:28 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2021-04-01 03:50:28 +0200 |
commit | 7246d8a77906d421de4eada95d90843b1b94326b (patch) | |
tree | a3e0132e546b11c1bd72fdf691346760686cba69 /api/logic/minecraft/MojangVersionFormat.cpp | |
parent | fbe9d158754bcdd12aa8889639bdbac4c125f1c9 (diff) | |
download | PrismLauncher-7246d8a77906d421de4eada95d90843b1b94326b.tar.gz PrismLauncher-7246d8a77906d421de4eada95d90843b1b94326b.tar.bz2 PrismLauncher-7246d8a77906d421de4eada95d90843b1b94326b.zip |
NOISSUE improve GradleSpecifier and handle broken library names
Diffstat (limited to 'api/logic/minecraft/MojangVersionFormat.cpp')
-rw-r--r-- | api/logic/minecraft/MojangVersionFormat.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/api/logic/minecraft/MojangVersionFormat.cpp b/api/logic/minecraft/MojangVersionFormat.cpp index 33d3c54c..f9cb2228 100644 --- a/api/logic/minecraft/MojangVersionFormat.cpp +++ b/api/logic/minecraft/MojangVersionFormat.cpp @@ -220,7 +220,7 @@ VersionFilePtr MojangVersionFormat::versionFileFromJson(const QJsonDocument &doc { auto libObj = requireObject(libVal); - auto lib = MojangVersionFormat::libraryFromJson(libObj, filename); + auto lib = MojangVersionFormat::libraryFromJson(*out, libObj, filename); out->libraries.append(lib); } } @@ -283,14 +283,18 @@ QJsonDocument MojangVersionFormat::versionFileToJson(const VersionFilePtr &patch } } -LibraryPtr MojangVersionFormat::libraryFromJson(const QJsonObject &libObj, const QString &filename) +LibraryPtr MojangVersionFormat::libraryFromJson(ProblemContainer & problems, const QJsonObject &libObj, const QString &filename) { LibraryPtr out(new Library()); if (!libObj.contains("name")) { throw JSONValidationError(filename + "contains a library that doesn't have a 'name' field"); } - out->m_name = libObj.value("name").toString(); + auto rawName = libObj.value("name").toString(); + out->m_name = rawName; + if(!out->m_name.valid()) { + problems.addProblem(ProblemSeverity::Error, QObject::tr("Library %1 name is broken and cannot be processed.").arg(rawName)); + } Bits::readString(libObj, "url", out->m_repositoryURL); if (libObj.contains("extract")) @@ -333,7 +337,7 @@ LibraryPtr MojangVersionFormat::libraryFromJson(const QJsonObject &libObj, const QJsonObject MojangVersionFormat::libraryToJson(Library *library) { QJsonObject libRoot; - libRoot.insert("name", (QString)library->m_name); + libRoot.insert("name", library->m_name.serialize()); if (!library->m_repositoryURL.isEmpty()) { libRoot.insert("url", library->m_repositoryURL); |