aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackManifest.cpp7
-rw-r--r--launcher/modplatform/modrinth/ModrinthPackManifest.h2
-rw-r--r--launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp8
3 files changed, 10 insertions, 7 deletions
diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
index 88ca808a..f690984b 100644
--- a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
@@ -16,9 +16,13 @@
#include "ModrinthPackManifest.h"
#include "Json.h"
+#include "modplatform/modrinth/ModrinthAPI.h"
+
#include "minecraft/MinecraftInstance.h"
#include "minecraft/PackProfile.h"
+static ModrinthAPI api;
+
namespace Modrinth {
void loadIndexedPack(Modpack& pack, QJsonObject& obj)
@@ -27,7 +31,8 @@ void loadIndexedPack(Modpack& pack, QJsonObject& obj)
pack.name = Json::ensureString(obj, "title");
pack.description = Json::ensureString(obj, "description");
- pack.authors << Json::ensureString(obj, "author");
+ auto temp_author_name = Json::ensureString(obj, "author");
+ pack.author = std::make_tuple(temp_author_name, api.getAuthorURL(temp_author_name));
pack.iconName = QString("modrinth_%1").arg(Json::ensureString(obj, "slug"));
pack.iconUrl = Json::ensureString(obj, "icon_url");
}
diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.h b/launcher/modplatform/modrinth/ModrinthPackManifest.h
index 33c3fc5e..47817bad 100644
--- a/launcher/modplatform/modrinth/ModrinthPackManifest.h
+++ b/launcher/modplatform/modrinth/ModrinthPackManifest.h
@@ -62,7 +62,7 @@ struct Modpack {
QString name;
QString description;
- QStringList authors;
+ std::tuple<QString, QUrl> author;
QString iconName;
QUrl iconUrl;
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
index cf519b8c..acfd14b5 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
@@ -221,10 +221,8 @@ void ModrinthPage::updateUI()
else
text = "<a href=\"" + current.extra.projectUrl + "\">" + current.name + "</a>";
- if (!current.authors.empty()) {
- // TODO: Implement multiple authors with links
- text += "<br>" + tr(" by ") + current.authors.at(0);
- }
+ // 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));
text += "<br>";
@@ -255,7 +253,7 @@ void ModrinthPage::suggestCurrent()
dialog->setSuggestedPack(current.name, new InstanceImportTask(ver.download_url));
auto iconName = current.iconName;
m_model->getLogo(iconName, current.iconUrl.toString(),
- [this, iconName](QString logo) { dialog->setSuggestedIconFromFile(logo, iconName); });
+ [this, iconName](QString logo) { dialog->setSuggestedIconFromFile(logo, iconName); });
break;
}