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