diff --git a/launcher/modplatform/ModIndex.h b/launcher/modplatform/ModIndex.h
index 72294c399..eff7e7f9f 100644
--- a/launcher/modplatform/ModIndex.h
+++ b/launcher/modplatform/ModIndex.h
@@ -122,6 +122,8 @@ struct ExtraPackData {
QString wikiUrl;
QString discordUrl;
+ QString status;
+
QString body;
};
diff --git a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
index 7d0893261..c1c30ab5f 100644
--- a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp
@@ -104,6 +104,8 @@ void Modrinth::loadExtraPackData(ModPlatform::IndexedPack& pack, QJsonObject& ob
pack.extraData.donate.append(donate);
}
+ pack.extraData.status = Json::ensureString(obj, "status");
+
pack.extraData.body = Json::ensureString(obj, "body").remove("
");
pack.extraDataLoaded = true;
diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
index d86f1c0e5..7846e966d 100644
--- a/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
+++ b/launcher/modplatform/modrinth/ModrinthPackManifest.cpp
@@ -95,6 +95,8 @@ void loadIndexedInfo(Modpack& pack, QJsonObject& obj)
pack.extra.donate.append(donate);
}
+ pack.extra.status = Json::ensureString(obj, "status");
+
pack.extraInfoLoaded = true;
}
diff --git a/launcher/modplatform/modrinth/ModrinthPackManifest.h b/launcher/modplatform/modrinth/ModrinthPackManifest.h
index 6fc55a043..1ffd31d83 100644
--- a/launcher/modplatform/modrinth/ModrinthPackManifest.h
+++ b/launcher/modplatform/modrinth/ModrinthPackManifest.h
@@ -77,6 +77,8 @@ struct ModpackExtra {
QString discordUrl;
QList donate;
+
+ QString status;
};
struct ModpackVersion {
diff --git a/launcher/ui/pages/modplatform/ResourcePage.cpp b/launcher/ui/pages/modplatform/ResourcePage.cpp
index 8f660a8b0..ae48e5523 100644
--- a/launcher/ui/pages/modplatform/ResourcePage.cpp
+++ b/launcher/ui/pages/modplatform/ResourcePage.cpp
@@ -200,6 +200,11 @@ void ResourcePage::updateUi()
}
if (current_pack->extraDataLoaded) {
+ if (current_pack->extraData.status == "archived") {
+ text += "
" + tr("This project has been archived. It will not receive any further updates unless the author decides "
+ "to unarchive the project.");
+ }
+
if (!current_pack->extraData.donate.isEmpty()) {
text += "
" + tr("Donate information: ");
auto donateToStr = [](ModPlatform::DonationData& donate) -> QString {
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
index 227ed646b..bac294b60 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthModel.cpp
@@ -142,7 +142,7 @@ void ModpackListModel::performPaginatedSearch()
callbacks.on_succeed = [this](auto& doc, auto& pack) { searchRequestForOneSucceeded(doc); };
callbacks.on_abort = [this] {
qCritical() << "Search task aborted by an unknown reason!";
- searchRequestFailed("Abborted");
+ searchRequestFailed("Aborted");
};
static const ModrinthAPI api;
if (auto job = api.getProjectInfo({ projectId }, std::move(callbacks)); job) {
diff --git a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
index b4045a046..fffa21940 100644
--- a/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
+++ b/launcher/ui/pages/modplatform/modrinth/ModrinthPage.cpp
@@ -267,6 +267,11 @@ void ModrinthPage::updateUI()
text += "
" + tr(" by ") + QString("%2").arg(std::get<1>(current.author).toString(), std::get<0>(current.author));
if (current.extraInfoLoaded) {
+ if (current.extra.status == "archived") {
+ text += "
" + tr("This project has been archived. It will not receive any further updates unless the author decides "
+ "to unarchive the project.");
+ }
+
if (!current.extra.donate.isEmpty()) {
text += "
" + tr("Donate information: ");
auto donateToStr = [](Modrinth::DonationData& donate) -> QString {
diff --git a/launcher/ui/widgets/ProjectItem.cpp b/launcher/ui/widgets/ProjectItem.cpp
index 60b92b28b..6946df41f 100644
--- a/launcher/ui/widgets/ProjectItem.cpp
+++ b/launcher/ui/widgets/ProjectItem.cpp
@@ -88,7 +88,7 @@ void ProjectItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o
}
{ // Description painting
- auto description = index.data(UserDataTypes::DESCRIPTION).toString();
+ auto description = index.data(UserDataTypes::DESCRIPTION).toString().simplified();
QTextLayout text_layout(description, opt.font);