#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; } };