diff options
author | flow <thiagodonato300@gmail.com> | 2022-05-14 20:17:05 -0300 |
---|---|---|
committer | flow <thiagodonato300@gmail.com> | 2022-05-14 20:19:26 -0300 |
commit | 4fda35b466e4e3f242955cf8cb692a10e8820f0b (patch) | |
tree | 3c7d832f4700c1814ff4b4167719beb9389c1c90 /launcher/modplatform/modrinth/ModrinthPackManifest.h | |
parent | 31988f0529f6c316d6a9ba3e66cf981a807ed710 (diff) | |
download | PrismLauncher-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.h | 50 |
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); |