aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/modrinth/ModrinthPackManifest.h
diff options
context:
space:
mode:
authorflow <thiagodonato300@gmail.com>2022-05-14 20:17:05 -0300
committerflow <thiagodonato300@gmail.com>2022-05-14 20:19:26 -0300
commit4fda35b466e4e3f242955cf8cb692a10e8820f0b (patch)
tree3c7d832f4700c1814ff4b4167719beb9389c1c90 /launcher/modplatform/modrinth/ModrinthPackManifest.h
parent31988f0529f6c316d6a9ba3e66cf981a807ed710 (diff)
downloadPrismLauncher-4fda35b466e4e3f242955cf8cb692a10e8820f0b.tar.gz
PrismLauncher-4fda35b466e4e3f242955cf8cb692a10e8820f0b.tar.bz2
PrismLauncher-4fda35b466e4e3f242955cf8cb692a10e8820f0b.zip
feat: add modrinth pack downloading
Things that don't work / work poorly (there's more for sure but those are the evident ones): - Icons are broken in the import dialog - No way to search for private packs - Icons are not downloaded when downloading a mod - No support for multiple download URLs - Probably a lot more...
Diffstat (limited to 'launcher/modplatform/modrinth/ModrinthPackManifest.h')
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackManifest.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.h b/launcher/modplatform/modrinth/ModrinthPackManifest.h
index 9742aeb2..7dab893c 100644
--- a/launcher/modplatform/modrinth/ModrinthPackManifest.h
+++ b/launcher/modplatform/modrinth/ModrinthPackManifest.h
@@ -15,18 +15,68 @@
#pragma once
+#include <QMetaType>
+
#include <QByteArray>
#include <QCryptographicHash>
#include <QString>
#include <QUrl>
+class MinecraftInstance;
+
namespace Modrinth {
+
struct File
{
QString path;
+
QCryptographicHash::Algorithm hashAlgorithm;
QByteArray hash;
// TODO: should this support multiple download URLs, like the JSON does?
QUrl download;
};
+
+struct ModpackExtra {
+ QString body;
+
+ QString sourceUrl;
+ QString wikiUrl;
+};
+
+struct ModpackVersion {
+ QString name;
+ QString version;
+
+ QString id;
+ QString project_id;
+
+ QString date;
+
+ QString download_url;
+};
+
+struct Modpack {
+ QString id;
+
+ QString name;
+ QString description;
+ QStringList authors;
+ QString iconName;
+ QUrl iconUrl;
+
+ bool versionsLoaded = false;
+ bool extraInfoLoaded = false;
+
+ ModpackExtra extra;
+ QVector<ModpackVersion> versions;
+};
+
+void loadIndexedPack(Modpack&, QJsonObject&);
+void loadIndexedInfo(Modpack&, QJsonObject&);
+void loadIndexedVersions(Modpack&, QJsonDocument&);
+auto loadIndexedVersion(QJsonObject&) -> ModpackVersion;
+
}
+
+Q_DECLARE_METATYPE(Modrinth::Modpack);
+Q_DECLARE_METATYPE(Modrinth::ModpackVersion);