Skip to content

Commit 6294215

Browse files
committed
fix: Fix for Forge-installers having different version format in older versions
1 parent 2c35366 commit 6294215

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

CurseForge.Minecraft.Serverpack.Launcher/Dependencies.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Text.Json;
99
using System.Threading.Tasks;
1010
using CurseForge.APIClient;
11+
using Spectre.Console;
1112

1213
namespace CurseForge.Minecraft.Serverpack.Launcher
1314
{
@@ -122,7 +123,22 @@ private static async Task DownloadLoaderDependencies<T>(HttpClient _client, stri
122123
case ForgeModLoaderInfo forge:
123124
var versionString = $"{info.NonMapped["minecraftVersion"]}-{info.NonMapped["forgeVersion"]}";
124125
var forgeInstallerMaven = new MavenString($"net.minecraftforge.forge:{versionString}");
125-
downloadUrls.Add(new(forgeInstallerMaven, installPath, new Uri($"https://maven.minecraftforge.net/net/minecraftforge/forge/{versionString}/forge-{versionString}-installer.jar")));
126+
127+
var forgeDlUrl = $"https://maven.minecraftforge.net/net/minecraftforge/forge/{versionString}/forge-{versionString}-installer.jar";
128+
129+
if (!await CheckIfEndpointExists(_client, forgeDlUrl))
130+
{
131+
versionString = $"{info.NonMapped["minecraftVersion"]}-{info.NonMapped["forgeVersion"]}-{info.NonMapped["minecraftVersion"]}";
132+
forgeDlUrl = $"https://maven.minecraftforge.net/net/minecraftforge/forge/{versionString}/forge-{versionString}-installer.jar";
133+
}
134+
135+
if (!await CheckIfEndpointExists(_client, forgeDlUrl))
136+
{
137+
AnsiConsole.WriteLine($"[red]Could not find an installer for the version of Forge that we need ({info.NonMapped["forgeVersion"]}) for Minecraft {info.NonMapped["minecraftVersion"]}[/]");
138+
throw new Exception("Missing Forge installer");
139+
}
140+
141+
downloadUrls.Add(new(forgeInstallerMaven, installPath, new Uri(forgeDlUrl)));
126142
break;
127143
}
128144

@@ -152,5 +168,11 @@ private static async Task DownloadLoaderDependencies<T>(HttpClient _client, stri
152168

153169
Console.WriteLine("Downloaded all library assets");
154170
}
171+
172+
private static async Task<bool> CheckIfEndpointExists(HttpClient _client, string url)
173+
{
174+
var result = await _client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
175+
return result.IsSuccessStatusCode;
176+
}
155177
}
156178
}

0 commit comments

Comments
 (0)