Fix duplicates in Modrinth dependency lookups

This commit is contained in:
comp500 2023-07-02 14:38:10 +01:00
parent 41465407b2
commit 99d0af14c4

View File

@ -240,11 +240,12 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
for _, dep := range version.Dependencies {
// TODO: recommend optional dependencies?
if dep.DependencyType != nil && *dep.DependencyType == "required" {
if dep.ProjectID != nil {
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt, mcVersion))
}
if dep.VersionID != nil {
depVersionIDPendingQueue = append(depVersionIDPendingQueue, *dep.VersionID)
} else {
if dep.ProjectID != nil {
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt, mcVersion))
}
}
}
}
@ -285,6 +286,10 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
}
depProjectIDPendingQueue = depProjectIDPendingQueue[:i]
// Clean up duplicates from dep queue (from deps on both QFAPI + FAPI)
slices.Sort(depProjectIDPendingQueue)
slices.Compact(depProjectIDPendingQueue)
if len(depProjectIDPendingQueue) == 0 {
break
}