aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform
diff options
context:
space:
mode:
authorflow <thiagodonato300@gmail.com>2022-04-21 15:45:20 -0300
committerflow <flowlnlnln@gmail.com>2022-05-23 14:43:09 -0300
commite17b6804a7424dd5161662c4ef92972f3311675c (patch)
tree2d6e5268d3ce2499d6e765797c35a4bec7062aa3 /launcher/modplatform
parent96e36f060443cbfa6d58df2adca3c8605851b4a3 (diff)
downloadPrismLauncher-e17b6804a7424dd5161662c4ef92972f3311675c.tar.gz
PrismLauncher-e17b6804a7424dd5161662c4ef92972f3311675c.tar.bz2
PrismLauncher-e17b6804a7424dd5161662c4ef92972f3311675c.zip
fix: implement PR suggestions
Some stylistic changes, and get hashes from the mod providers when building the metadata.
Diffstat (limited to 'launcher/modplatform')
-rw-r--r--launcher/modplatform/ModIndex.h3
-rw-r--r--launcher/modplatform/flame/FlameModIndex.cpp8
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackIndex.cpp4
-rw-r--r--launcher/modplatform/packwiz/Packwiz.cpp2
4 files changed, 15 insertions, 2 deletions
diff --git a/launcher/modplatform/ModIndex.h b/launcher/modplatform/ModIndex.h
index bb5c7c9d..2137f616 100644
--- a/launcher/modplatform/ModIndex.h
+++ b/launcher/modplatform/ModIndex.h
@@ -8,7 +8,7 @@
namespace ModPlatform {
-enum class Provider{
+enum class Provider {
MODRINTH,
FLAME
};
@@ -33,6 +33,7 @@ struct IndexedVersion {
QString date;
QString fileName;
QVector<QString> loaders = {};
+ QString hash;
};
struct IndexedPack {
diff --git a/launcher/modplatform/flame/FlameModIndex.cpp b/launcher/modplatform/flame/FlameModIndex.cpp
index 45f02b71..4b172c13 100644
--- a/launcher/modplatform/flame/FlameModIndex.cpp
+++ b/launcher/modplatform/flame/FlameModIndex.cpp
@@ -6,6 +6,8 @@
#include "modplatform/flame/FlameAPI.h"
#include "net/NetJob.h"
+static ModPlatform::ProviderCapabilities ProviderCaps;
+
void FlameMod::loadIndexedPack(ModPlatform::IndexedPack& pack, QJsonObject& obj)
{
pack.addonId = Json::requireInteger(obj, "id");
@@ -60,6 +62,12 @@ void FlameMod::loadIndexedPackVersions(ModPlatform::IndexedPack& pack,
file.downloadUrl = Json::requireString(obj, "downloadUrl");
file.fileName = Json::requireString(obj, "fileName");
+ auto hash_list = Json::ensureArray(obj, "hashes");
+ if(!hash_list.isEmpty()){
+ if(hash_list.contains(ProviderCaps.hashType(ModPlatform::Provider::FLAME)))
+ file.hash = Json::requireString(hash_list, "value");
+ }
+
unsortedVersions.append(file);
}
diff --git a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
index 6c8659dc..8b750740 100644
--- a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
@@ -24,6 +24,7 @@
#include "net/NetJob.h"
static ModrinthAPI api;
+static ModPlatform::ProviderCapabilities ProviderCaps;
void Modrinth::loadIndexedPack(ModPlatform::IndexedPack& pack, QJsonObject& obj)
{
@@ -95,6 +96,9 @@ void Modrinth::loadIndexedPackVersions(ModPlatform::IndexedPack& pack,
if (parent.contains("url")) {
file.downloadUrl = Json::requireString(parent, "url");
file.fileName = Json::requireString(parent, "filename");
+ auto hash_list = Json::requireObject(parent, "hashes");
+ if(hash_list.contains(ProviderCaps.hashType(ModPlatform::Provider::MODRINTH)))
+ file.hash = Json::requireString(hash_list, ProviderCaps.hashType(ModPlatform::Provider::MODRINTH));
unsortedVersions.append(file);
}
diff --git a/launcher/modplatform/packwiz/Packwiz.cpp b/launcher/modplatform/packwiz/Packwiz.cpp
index 50f87c24..70efc6bd 100644
--- a/launcher/modplatform/packwiz/Packwiz.cpp
+++ b/launcher/modplatform/packwiz/Packwiz.cpp
@@ -30,7 +30,7 @@ auto V1::createModFormat(QDir& index_dir, ModPlatform::IndexedPack& mod_pack, Mo
mod.url = mod_version.downloadUrl;
mod.hash_format = ProviderCaps.hashType(mod_pack.provider);
- mod.hash = ""; // FIXME
+ mod.hash = mod_version.hash;
mod.provider = mod_pack.provider;
mod.file_id = mod_pack.addonId;