add support for version placeholder in download links
This commit is contained in:
@@ -40,4 +40,11 @@ public static class Extensions
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetSourceUrl(this InstallAction @this, Version version)
|
||||
{
|
||||
if (version is null)
|
||||
return @this.SourceUrl;
|
||||
return @this.SourceUrl.Replace("{version}", version.ToString(3));
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ public class ModpackFactory
|
||||
modrinth.Dispose();
|
||||
}
|
||||
|
||||
public async Task<string> ResolveSourceUrl(InstallAction action)
|
||||
public async Task<string> ResolveSourceUrl(InstallAction action, Version? targetVersion)
|
||||
{
|
||||
if (action.SourceType == SourceType.GitHub)
|
||||
{
|
||||
@@ -53,7 +53,7 @@ public class ModpackFactory
|
||||
return file.Url;
|
||||
}
|
||||
|
||||
return action.SourceUrl;
|
||||
return action.GetSourceUrl(targetVersion);
|
||||
}
|
||||
|
||||
public async Task<KeyValuePair<string, string>[]> FindUpdates(InstallAction action, string? gameVersion, ModLoader modLoader)
|
||||
|
||||
@@ -150,8 +150,8 @@ public class ModpackInstaller(ModpackConfig updateConfig, ModpackInfo modpackInf
|
||||
{
|
||||
var destFilePath = Path.Combine(modpackInfo.LocaLPath, iaction.DestPath);
|
||||
var sourceUrl = updateConfig.PreferDirectLinks && !string.IsNullOrWhiteSpace(iaction.SourceUrl)
|
||||
? iaction.SourceUrl
|
||||
: await factory.ResolveSourceUrl(iaction);
|
||||
? iaction.GetSourceUrl(checkResult.LatestVersion)
|
||||
: await factory.ResolveSourceUrl(iaction, checkResult.LatestVersion);
|
||||
|
||||
if (iaction is UpdateAction uaction)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user