refactor: allow tracking multiple mod loaders

This commit is contained in:
Sefa Eyeoglu
2022-05-19 08:40:28 +02:00
parent 77caaca50d
commit 943090db98
13 changed files with 54 additions and 45 deletions

View File

@ -37,14 +37,14 @@ class FlameAPI : public NetworkModAPI {
.arg(args.offset)
.arg(args.search)
.arg(getSortFieldInt(args.sorting))
.arg(getMappedModLoader(args.mod_loader))
.arg(getMappedModLoader(args.loaders))
.arg(gameVersionStr);
};
inline auto getVersionsURL(VersionSearchArgs& args) const -> QString override
{
QString gameVersionQuery = args.mcVersions.size() == 1 ? QString("gameVersion=%1&").arg(args.mcVersions.front().toString()) : "";
QString modLoaderQuery = QString("modLoaderType=%1&").arg(getMappedModLoader(args.loader));
QString modLoaderQuery = QString("modLoaderType=%1&").arg(getMappedModLoader(args.loaders));
return QString("https://api.curseforge.com/v1/mods/%1/files?pageSize=10000&%2%3")
.arg(args.addonId)
@ -53,11 +53,16 @@ class FlameAPI : public NetworkModAPI {
};
public:
static auto getMappedModLoader(const ModLoaderType type) -> const ModLoaderType
static auto getMappedModLoader(const ModLoaderTypes loaders) -> const int
{
// https://docs.curseforge.com/?http#tocS_ModLoaderType
if (loaders & Forge)
return 1;
if (loaders & Fabric)
return 4;
// TODO: remove this once Quilt drops official Fabric support
if (type == Quilt) // NOTE: Most if not all Fabric mods should work *currently*
return Fabric;
return type;
if (loaders & Quilt) // NOTE: Most if not all Fabric mods should work *currently*
return 4; // Quilt would probably be 5
return 0;
}
};