aboutsummaryrefslogtreecommitdiff
path: root/api/logic/minecraft/MojangVersionFormat.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2021-04-01 03:50:28 +0200
committerPetr Mrázek <peterix@gmail.com>2021-04-01 03:50:28 +0200
commit7246d8a77906d421de4eada95d90843b1b94326b (patch)
treea3e0132e546b11c1bd72fdf691346760686cba69 /api/logic/minecraft/MojangVersionFormat.cpp
parentfbe9d158754bcdd12aa8889639bdbac4c125f1c9 (diff)
downloadPrismLauncher-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.cpp12
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);