mirror of
https://github.com/packwiz/packwiz.git
synced 2025-04-19 13:06:30 +02:00
Manually replace FAPI deps with QFAPI/QSL when using Quilt (fixes #212)
This commit is contained in:
parent
bfe570a6a2
commit
bd71ad5679
@ -589,3 +589,11 @@ func (m *cfDownloadMetadata) DownloadFile() (io.ReadCloser, error) {
|
||||
}
|
||||
return resp.Body, nil
|
||||
}
|
||||
|
||||
func mapDepOverride(depID uint32, isQuilt bool) uint32 {
|
||||
if isQuilt && depID == 306612 {
|
||||
// Transform FAPI dependencies to QFAPI/QSL dependencies when using Quilt
|
||||
return 634179
|
||||
}
|
||||
return depID
|
||||
}
|
||||
|
@ -122,11 +122,13 @@ var installCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
if len(fileInfoData.Dependencies) > 0 {
|
||||
isQuilt := slices.Contains(pack.GetLoaders(), "quilt")
|
||||
|
||||
var depsInstallable []installableDep
|
||||
var depIDPendingQueue []uint32
|
||||
for _, dep := range fileInfoData.Dependencies {
|
||||
if dep.Type == dependencyTypeRequired {
|
||||
depIDPendingQueue = append(depIDPendingQueue, dep.ModID)
|
||||
depIDPendingQueue = append(depIDPendingQueue, mapDepOverride(dep.ModID, isQuilt))
|
||||
}
|
||||
}
|
||||
|
||||
@ -190,7 +192,7 @@ var installCmd = &cobra.Command{
|
||||
|
||||
for _, dep := range depFileInfo.Dependencies {
|
||||
if dep.Type == dependencyTypeRequired {
|
||||
depIDPendingQueue = append(depIDPendingQueue, dep.ModID)
|
||||
depIDPendingQueue = append(depIDPendingQueue, mapDepOverride(dep.ModID, isQuilt))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -227,6 +227,7 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
||||
if len(version.Dependencies) > 0 {
|
||||
// TODO: could get installed version IDs, and compare to install the newest - i.e. preferring pinned versions over getting absolute latest?
|
||||
installedProjects := getInstalledProjectIDs(index)
|
||||
isQuilt := slices.Contains(pack.GetLoaders(), "quilt")
|
||||
|
||||
var depMetadata []depMetadataStore
|
||||
var depProjectIDPendingQueue []string
|
||||
@ -236,7 +237,7 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
||||
// TODO: recommend optional dependencies?
|
||||
if dep.DependencyType != nil && *dep.DependencyType == "required" {
|
||||
if dep.ProjectID != nil {
|
||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, *dep.ProjectID)
|
||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt))
|
||||
}
|
||||
if dep.VersionID != nil {
|
||||
depVersionIDPendingQueue = append(depVersionIDPendingQueue, *dep.VersionID)
|
||||
@ -255,7 +256,7 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
||||
if err == nil {
|
||||
for _, v := range depVersions {
|
||||
// Add project ID to queue
|
||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, *v.ProjectID)
|
||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*v.ProjectID, isQuilt))
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("Error retrieving dependency data: %s\n", err.Error())
|
||||
@ -304,7 +305,7 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
||||
// TODO: recommend optional dependencies?
|
||||
if dep.DependencyType != nil && *dep.DependencyType == "required" {
|
||||
if dep.ProjectID != nil {
|
||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, *dep.ProjectID)
|
||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt))
|
||||
}
|
||||
if dep.VersionID != nil {
|
||||
depVersionIDPendingQueue = append(depVersionIDPendingQueue, *dep.VersionID)
|
||||
|
@ -426,3 +426,11 @@ func resolveVersion(project *modrinthApi.Project, version string) (*modrinthApi.
|
||||
}
|
||||
return nil, fmt.Errorf("unable to find version %s", version)
|
||||
}
|
||||
|
||||
func mapDepOverride(depID string, isQuilt bool) string {
|
||||
if isQuilt && (depID == "P7dR8mSH" || depID == "fabric-api") {
|
||||
// Transform FAPI dependencies to QFAPI/QSL dependencies when using Quilt
|
||||
return "qvIfYCYJ"
|
||||
}
|
||||
return depID
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user