list only relevant modrinth versions

This commit is contained in:
2025-01-26 09:19:07 +01:00
parent ecb7ae0d1a
commit 2ce73ad032

View File

@@ -82,7 +82,7 @@ public class ModpackFactory
} }
else if (action.SourceType == SourceType.Modrinth) else if (action.SourceType == SourceType.Modrinth)
{ {
var res = await modrinth.Version.GetProjectVersionListAsync(action.SourceName); var res = await modrinth.Version.GetProjectVersionListAsync(action.SourceName, gameVersions: GetGameVersionForModrinth(gameVersion), loaders: GetModLoaderForModrinth(modLoader));
return res.Select(v => new KeyValuePair<string, string>($"{v.VersionNumber} {v.ProjectVersionType} {v.Name}", v.Id)).ToArray(); return res.Select(v => new KeyValuePair<string, string>($"{v.VersionNumber} {v.ProjectVersionType} {v.Name}", v.Id)).ToArray();
} }
@@ -103,4 +103,26 @@ public class ModpackFactory
_ => null, _ => null,
}; };
} }
private string[] GetModLoaderForModrinth(ModLoader modLoader)
{
return modLoader switch
{
ModLoader.Any => [],
ModLoader.Forge => ["forge"],
ModLoader.NeoForge => ["neoforge"],
ModLoader.Fabric => ["fabric"],
ModLoader.LiteLoader => ["liteloader"],
ModLoader.Cauldron => ["cauldron"],
ModLoader.Quilt => ["quilt"],
_ => null,
};
}
private string[] GetGameVersionForModrinth(string? gameVersion)
{
if (string.IsNullOrWhiteSpace(gameVersion) || gameVersion == "*")
return [];
return [gameVersion];
}
} }