aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-05-24 09:46:58 -0300
committerflow <flowlnlnln@gmail.com>2022-05-24 09:46:58 -0300
commit22e0527502683a625c5963ec8155e07d9ec06d28 (patch)
treef3310ef89cd9dd6e0347818772dda460c8df4100 /launcher
parentca3c6c5e8a5151ea50e51f09938b894e6a610626 (diff)
downloadPrismLauncher-22e0527502683a625c5963ec8155e07d9ec06d28.tar.gz
PrismLauncher-22e0527502683a625c5963ec8155e07d9ec06d28.tar.bz2
PrismLauncher-22e0527502683a625c5963ec8155e07d9ec06d28.zip
feat: add donate info to modrinth modpacks
Diffstat (limited to 'launcher')
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackManifest.cpp13
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackManifest.h9
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp12
3 files changed, 34 insertions, 0 deletions
diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
index f1ad39ce..f47942a0 100644
--- a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
@@ -65,6 +65,19 @@ void loadIndexedInfo(Modpack& pack, QJsonObject& obj)
pack.extra.sourceUrl = Json::ensureString(obj, "source_url");
pack.extra.wikiUrl = Json::ensureString(obj, "wiki_url");
+ auto donate_arr = Json::ensureArray(obj, "donation_urls");
+ for(auto d : donate_arr){
+ auto d_obj = Json::requireObject(d);
+
+ DonationData donate;
+
+ donate.id = Json::ensureString(d_obj, "id");
+ donate.platform = Json::ensureString(d_obj, "platform");
+ donate.url = Json::ensureString(d_obj, "url");
+
+ pack.extra.donate.append(donate);
+ }
+
pack.extraInfoLoaded = true;
}
diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.h b/launcher/modplatform/modrinth/ModrinthPackManifest.h
index e5fc9a70..c8ca3660 100644
--- a/launcher/modplatform/modrinth/ModrinthPackManifest.h
+++ b/launcher/modplatform/modrinth/ModrinthPackManifest.h
@@ -58,12 +58,21 @@ struct File
QUrl download;
};
+struct DonationData {
+ QString id;
+ QString platform;
+ QString url;
+};
+
struct ModpackExtra {
QString body;
QString projectUrl;
QString sourceUrl;
QString wikiUrl;
+
+ QList<DonationData> donate;
+
};
struct ModpackVersion {
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
index 9bd24b57..f44d05f2 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
@@ -224,6 +224,18 @@ void ModrinthPage::updateUI()
// TODO: Implement multiple authors with links
text += "<br>" + tr(" by ") + QString("<a href=%1>%2</a>").arg(std::get<1>(current.author).toString(), std::get<0>(current.author));
+ if(!current.extra.donate.isEmpty()) {
+ text += "<br><br>Donation information:<br>";
+ auto donateToStr = [](Modrinth::DonationData& donate) -> QString {
+ return QString("<a href=\"%1\">%2</a>").arg(donate.url, donate.platform);
+ };
+ QStringList donates;
+ for (auto& donate : current.extra.donate) {
+ donates.append(donateToStr(donate));
+ }
+ text += donates.join(", ");
+ }
+
text += "<br>";
HoeDown h;