From 21876cba1ee2c04419ceddc7c72f830c9e25a7f0 Mon Sep 17 00:00:00 2001 From: comp500 Date: Wed, 26 Apr 2023 03:17:29 +0100 Subject: [PATCH] Fix CurseForge file loader/ID comparison (unsigned arithmetic moment) --- curseforge/curseforge.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/curseforge/curseforge.go b/curseforge/curseforge.go index 2e41a05..42238bc 100644 --- a/curseforge/curseforge.go +++ b/curseforge/curseforge.go @@ -306,11 +306,11 @@ func findLatestFile(modInfoData modInfo, mcVersions []string, packLoaders []stri compare := int32(mcVerIdx - bestMcVer) if compare == 0 { // Prefer higher loader indexes - compare = int32(loaderIdx - bestLoaderType) + compare = int32(loaderIdx) - int32(bestLoaderType) } if compare == 0 { // Other comparisons are equal, compare by ID instead - compare = int32(v.ID - fileID) + compare = int32(int64(v.ID) - int64(fileID)) } if compare > 0 { fileID = v.ID @@ -333,11 +333,11 @@ func findLatestFile(modInfoData modInfo, mcVersions []string, packLoaders []stri compare := int32(mcVerIdx - bestMcVer) if compare == 0 { // Prefer higher loader indexes - compare = int32(loaderIdx - bestLoaderType) + compare = int32(loaderIdx) - int32(bestLoaderType) } if compare == 0 { // Other comparisons are equal, compare by ID instead - compare = int32(v.ID - fileID) + compare = int32(int64(v.ID) - int64(fileID)) } if compare > 0 { fileID = v.ID