aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-06-19 14:31:44 -0300
committerflow <flowlnlnln@gmail.com>2022-07-17 11:33:43 -0300
commita7648d60ce1d1567cd1c878aaa55dae3696a0210 (patch)
tree503f74ddf1125d0c2ae3f6d0e87040ce3c11d607 /launcher
parent52c45c2d32e6bb10b2ca5db9b73cb91fac57c943 (diff)
downloadPrismLauncher-a7648d60ce1d1567cd1c878aaa55dae3696a0210.tar.gz
PrismLauncher-a7648d60ce1d1567cd1c878aaa55dae3696a0210.tar.bz2
PrismLauncher-a7648d60ce1d1567cd1c878aaa55dae3696a0210.zip
fix: don't require non-essential items in mod index
Also adds slug field. Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher')
-rw-r--r--launcher/modplatform/ModIndex.h5
-rw-r--r--launcher/modplatform/flame/FlameModIndex.cpp9
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackIndex.cpp13
3 files changed, 16 insertions, 11 deletions
diff --git a/launcher/modplatform/ModIndex.h b/launcher/modplatform/ModIndex.h
index f8ef211e..dc297d03 100644
--- a/launcher/modplatform/ModIndex.h
+++ b/launcher/modplatform/ModIndex.h
@@ -55,11 +55,11 @@ struct IndexedVersion {
QVariant fileId;
QString version;
QString version_number = {};
- QVector<QString> mcVersion;
+ QStringList mcVersion;
QString downloadUrl;
QString date;
QString fileName;
- QVector<QString> loaders = {};
+ QStringList loaders = {};
QString hash_type;
QString hash;
bool is_preferred = true;
@@ -79,6 +79,7 @@ struct IndexedPack {
QVariant addonId;
Provider provider;
QString name;
+ QString slug;
QString description;
QList<ModpackAuthor> authors;
QString logoName;
diff --git a/launcher/modplatform/flame/FlameModIndex.cpp b/launcher/modplatform/flame/FlameModIndex.cpp
index a3222f44..746018e2 100644
--- a/launcher/modplatform/flame/FlameModIndex.cpp
+++ b/launcher/modplatform/flame/FlameModIndex.cpp
@@ -14,14 +14,15 @@ void FlameMod::loadIndexedPack(ModPlatform::IndexedPack& pack, QJsonObject& obj)
pack.addonId = Json::requireInteger(obj, "id");
pack.provider = ModPlatform::Provider::FLAME;
pack.name = Json::requireString(obj, "name");
+ pack.slug = Json::requireString(obj, "slug");
pack.websiteUrl = Json::ensureString(Json::ensureObject(obj, "links"), "websiteUrl", "");
pack.description = Json::ensureString(obj, "summary", "");
- QJsonObject logo = Json::requireObject(obj, "logo");
- pack.logoName = Json::requireString(logo, "title");
- pack.logoUrl = Json::requireString(logo, "thumbnailUrl");
+ QJsonObject logo = Json::ensureObject(obj, "logo");
+ pack.logoName = Json::ensureString(logo, "title");
+ pack.logoUrl = Json::ensureString(logo, "thumbnailUrl");
- auto authors = Json::requireArray(obj, "authors");
+ auto authors = Json::ensureArray(obj, "authors");
for (auto authorIter : authors) {
auto author = Json::requireObject(authorIter);
ModPlatform::ModpackAuthor packAuthor;
diff --git a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
index 1910c9be..e50dd96d 100644
--- a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
@@ -29,13 +29,16 @@ static ModPlatform::ProviderCapabilities ProviderCaps;
void Modrinth::loadIndexedPack(ModPlatform::IndexedPack& pack, QJsonObject& obj)
{
- pack.addonId = Json::requireString(obj, "project_id");
+ pack.addonId = Json::ensureString(obj, "project_id");
+ if (pack.addonId.toString().isEmpty())
+ pack.addonId = Json::requireString(obj, "id");
+
pack.provider = ModPlatform::Provider::MODRINTH;
pack.name = Json::requireString(obj, "title");
- QString slug = Json::ensureString(obj, "slug", "");
- if (!slug.isEmpty())
- pack.websiteUrl = "https://modrinth.com/mod/" + Json::ensureString(obj, "slug", "");
+ pack.slug = Json::ensureString(obj, "slug", "");
+ if (!pack.slug.isEmpty())
+ pack.websiteUrl = "https://modrinth.com/mod/" + pack.slug;
else
pack.websiteUrl = "";
@@ -45,7 +48,7 @@ void Modrinth::loadIndexedPack(ModPlatform::IndexedPack& pack, QJsonObject& obj)
pack.logoName = pack.addonId.toString();
ModPlatform::ModpackAuthor modAuthor;
- modAuthor.name = Json::requireString(obj, "author");
+ modAuthor.name = Json::ensureString(obj, "author", QObject::tr("No author(s)"));
modAuthor.url = api.getAuthorURL(modAuthor.name);
pack.authors.append(modAuthor);