cab9afa45f
Right now we want to include Fabric mods in our searches where possible. Modrinth allows definining multiple loaders, while Flame only allows a single value. As a compromise we ask for Fabric mods only on Flame and for both Fabric and Quilt mods on Modrinth.
44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "modplatform/helpers/NetworkModAPI.h"
|
|
|
|
class FlameAPI : public NetworkModAPI {
|
|
private:
|
|
inline auto getModSearchURL(SearchArgs& args) const -> QString override
|
|
{
|
|
auto gameVersionStr = args.versions.size() != 0 ? QString("gameVersion=%1").arg(args.versions.front().toString()) : QString();
|
|
|
|
return QString(
|
|
"https://addons-ecs.forgesvc.net/api/v2/addon/search?"
|
|
"gameId=432&"
|
|
"categoryId=0&"
|
|
"sectionId=6&"
|
|
|
|
"index=%1&"
|
|
"pageSize=25&"
|
|
"searchFilter=%2&"
|
|
"sort=%3&"
|
|
"modLoaderType=%4&"
|
|
"%5")
|
|
.arg(args.offset)
|
|
.arg(args.search)
|
|
.arg(args.sorting)
|
|
.arg(getMappedModLoader(args.mod_loader))
|
|
.arg(gameVersionStr);
|
|
};
|
|
|
|
inline auto getVersionsURL(VersionSearchArgs& args) const -> QString override
|
|
{
|
|
return QString("https://addons-ecs.forgesvc.net/api/v2/addon/%1/files").arg(args.addonId);
|
|
};
|
|
|
|
public:
|
|
static auto getMappedModLoader(const ModLoaderType type) -> const ModLoaderType
|
|
{
|
|
// 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;
|
|
}
|
|
};
|