ensure that the snapshot mapping is on all apis
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com> (cherry picked from commit 8e5a7c6e333969b5412efd1349f9430ced5654c8)
This commit is contained in:
parent
f8dc58665b
commit
ae3e1a262e
@ -73,7 +73,7 @@ class ResourceAPI {
|
||||
std::optional<QString> search;
|
||||
std::optional<SortingMethod> sorting;
|
||||
std::optional<ModPlatform::ModLoaderTypes> loaders;
|
||||
std::optional<std::list<Version> > versions;
|
||||
std::optional<std::list<Version>> versions;
|
||||
std::optional<QString> side;
|
||||
std::optional<QStringList> categoryIds;
|
||||
};
|
||||
@ -168,11 +168,23 @@ class ResourceAPI {
|
||||
protected:
|
||||
[[nodiscard]] inline QString debugName() const { return "External resource API"; }
|
||||
|
||||
[[nodiscard]] inline auto getGameVersionsString(std::list<Version> mcVersions) const -> QString
|
||||
[[nodiscard]] inline QString mapMCVersionToModrinth(Version v) const
|
||||
{
|
||||
static const QString preString = " Pre-Release ";
|
||||
auto verStr = v.toString();
|
||||
|
||||
if (verStr.contains(preString)) {
|
||||
verStr.replace(preString, "-pre");
|
||||
}
|
||||
verStr.replace(" ", "-");
|
||||
return verStr;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline QString getGameVersionsString(std::list<Version> mcVersions) const
|
||||
{
|
||||
QString s;
|
||||
for (auto& ver : mcVersions) {
|
||||
s += QString("\"%1\",").arg(ver.toString());
|
||||
s += QString("\"%1\",").arg(mapMCVersionToModrinth(ver));
|
||||
}
|
||||
s.remove(s.length() - 1, 1); // remove last comma
|
||||
return s;
|
||||
|
@ -54,7 +54,7 @@ Task::Ptr ModrinthAPI::latestVersion(QString hash,
|
||||
if (mcVersions.has_value()) {
|
||||
QStringList game_versions;
|
||||
for (auto& ver : mcVersions.value()) {
|
||||
game_versions.append(ver.toString());
|
||||
game_versions.append(mapMCVersionToModrinth(ver));
|
||||
}
|
||||
Json::writeStringList(body_obj, "game_versions", game_versions);
|
||||
}
|
||||
@ -87,7 +87,7 @@ Task::Ptr ModrinthAPI::latestVersions(const QStringList& hashes,
|
||||
if (mcVersions.has_value()) {
|
||||
QStringList game_versions;
|
||||
for (auto& ver : mcVersions.value()) {
|
||||
game_versions.append(ver.toString());
|
||||
game_versions.append(mapMCVersionToModrinth(ver));
|
||||
}
|
||||
Json::writeStringList(body_obj, "game_versions", game_versions);
|
||||
}
|
||||
|
@ -81,6 +81,21 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||
return {};
|
||||
}
|
||||
|
||||
[[nodiscard]] static inline QString mapMCVersionFromModrinth(QString v)
|
||||
{
|
||||
static const QString preString = " Pre-Release ";
|
||||
bool pre = false;
|
||||
if (v.contains("-pre")) {
|
||||
pre = true;
|
||||
v.replace("-pre", preString);
|
||||
}
|
||||
v.replace("-", " ");
|
||||
if (pre) {
|
||||
v.replace(" Pre Release ", preString);
|
||||
}
|
||||
return v;
|
||||
}
|
||||
|
||||
private:
|
||||
[[nodiscard]] static QString resourceTypeParameter(ModPlatform::ResourceType type)
|
||||
{
|
||||
@ -168,16 +183,9 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||
|
||||
QString getGameVersionsArray(std::list<Version> mcVersions) const
|
||||
{
|
||||
static const QString preString = " Pre-Release ";
|
||||
QString s;
|
||||
for (auto& ver : mcVersions) {
|
||||
auto verStr = ver.toString();
|
||||
|
||||
if (verStr.contains(preString)) {
|
||||
verStr.replace(preString, "-pre");
|
||||
}
|
||||
verStr.replace(" ", "-");
|
||||
s += QString("\"versions:%1\",").arg(verStr);
|
||||
s += QString("\"versions:%1\",").arg(mapMCVersionToModrinth(ver));
|
||||
}
|
||||
s.remove(s.length() - 1, 1); // remove last comma
|
||||
return s.isEmpty() ? QString() : s;
|
||||
@ -194,7 +202,7 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||
: QString("%1/project/%2/version?game_versions=[\"%3\"]&loaders=[\"%4\"]")
|
||||
.arg(BuildConfig.MODRINTH_PROD_URL)
|
||||
.arg(args.dependency.addonId.toString())
|
||||
.arg(args.mcVersion.toString())
|
||||
.arg(mapMCVersionToModrinth(args.mcVersion))
|
||||
.arg(getModLoaderStrings(args.loader).join("\",\""));
|
||||
};
|
||||
};
|
||||
|
@ -131,9 +131,7 @@ void Modrinth::loadIndexedPackVersions(ModPlatform::IndexedPack& pack, QJsonArra
|
||||
pack.versionsLoaded = true;
|
||||
}
|
||||
|
||||
auto Modrinth::loadIndexedPackVersion(QJsonObject& obj,
|
||||
QString preferred_hash_type,
|
||||
QString preferred_file_name) -> ModPlatform::IndexedVersion
|
||||
ModPlatform::IndexedVersion Modrinth::loadIndexedPackVersion(QJsonObject& obj, QString preferred_hash_type, QString preferred_file_name)
|
||||
{
|
||||
ModPlatform::IndexedVersion file;
|
||||
|
||||
@ -145,7 +143,7 @@ auto Modrinth::loadIndexedPackVersion(QJsonObject& obj,
|
||||
return {};
|
||||
}
|
||||
for (auto mcVer : versionArray) {
|
||||
file.mcVersion.append(mcVer.toString());
|
||||
file.mcVersion.append(ModrinthAPI::mapMCVersionFromModrinth(mcVer.toString()));
|
||||
}
|
||||
auto loaders = Json::requireArray(obj, "loaders");
|
||||
for (auto loader : loaders) {
|
||||
@ -247,9 +245,9 @@ auto Modrinth::loadIndexedPackVersion(QJsonObject& obj,
|
||||
return {};
|
||||
}
|
||||
|
||||
auto Modrinth::loadDependencyVersions([[maybe_unused]] const ModPlatform::Dependency& m,
|
||||
QJsonArray& arr,
|
||||
const BaseInstance* inst) -> ModPlatform::IndexedVersion
|
||||
ModPlatform::IndexedVersion Modrinth::loadDependencyVersions([[maybe_unused]] const ModPlatform::Dependency& m,
|
||||
QJsonArray& arr,
|
||||
const BaseInstance* inst)
|
||||
{
|
||||
auto profile = (dynamic_cast<const MinecraftInstance*>(inst))->getPackProfile();
|
||||
QString mcVersion = profile->getComponentVersion("net.minecraft");
|
||||
|
@ -40,9 +40,6 @@
|
||||
|
||||
#include "modplatform/modrinth/ModrinthAPI.h"
|
||||
|
||||
#include "minecraft/MinecraftInstance.h"
|
||||
#include "minecraft/PackProfile.h"
|
||||
|
||||
#include <QSet>
|
||||
|
||||
static ModrinthAPI api;
|
||||
@ -134,6 +131,7 @@ auto loadIndexedVersion(QJsonObject& obj) -> ModpackVersion
|
||||
auto gameVersions = Json::ensureArray(obj, "game_versions");
|
||||
if (!gameVersions.isEmpty()) {
|
||||
file.gameVersion = Json::ensureString(gameVersions[0]);
|
||||
file.gameVersion = ModrinthAPI::mapMCVersionFromModrinth(file.gameVersion);
|
||||
}
|
||||
auto loaders = Json::requireArray(obj, "loaders");
|
||||
for (auto loader : loaders) {
|
||||
|
Loading…
Reference in New Issue
Block a user