mirror of
https://github.com/packwiz/packwiz.git
synced 2025-04-19 21:16:30 +02:00
Manually replace FLK deps with QKL when using Quilt >=1.19.2 (fixes #212)
This commit is contained in:
parent
bd71ad5679
commit
e966eaffc0
@ -4,6 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
|
"github.com/unascribed/FlexVer/go/flexver"
|
||||||
"golang.org/x/exp/slices"
|
"golang.org/x/exp/slices"
|
||||||
"io"
|
"io"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -590,10 +591,17 @@ func (m *cfDownloadMetadata) DownloadFile() (io.ReadCloser, error) {
|
|||||||
return resp.Body, nil
|
return resp.Body, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func mapDepOverride(depID uint32, isQuilt bool) uint32 {
|
// mapDepOverride transforms manual dependency overrides (which will likely be removed when packwiz is able to determine provided mods)
|
||||||
|
func mapDepOverride(depID uint32, isQuilt bool, mcVersion string) uint32 {
|
||||||
if isQuilt && depID == 306612 {
|
if isQuilt && depID == 306612 {
|
||||||
// Transform FAPI dependencies to QFAPI/QSL dependencies when using Quilt
|
// Transform FAPI dependencies to QFAPI/QSL dependencies when using Quilt
|
||||||
return 634179
|
return 634179
|
||||||
}
|
}
|
||||||
|
if isQuilt && depID == 308769 {
|
||||||
|
// Transform FLK dependencies to QKL dependencies when using Quilt >=1.19.2 non-snapshot
|
||||||
|
if flexver.Less("1.19.1", mcVersion) && flexver.Less(mcVersion, "2.0.0") {
|
||||||
|
return 720410
|
||||||
|
}
|
||||||
|
}
|
||||||
return depID
|
return depID
|
||||||
}
|
}
|
||||||
|
@ -44,6 +44,11 @@ var installCmd = &cobra.Command{
|
|||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
primaryMCVersion, err := pack.GetMCVersion()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
game := gameFlag
|
game := gameFlag
|
||||||
category := categoryFlag
|
category := categoryFlag
|
||||||
@ -128,7 +133,7 @@ var installCmd = &cobra.Command{
|
|||||||
var depIDPendingQueue []uint32
|
var depIDPendingQueue []uint32
|
||||||
for _, dep := range fileInfoData.Dependencies {
|
for _, dep := range fileInfoData.Dependencies {
|
||||||
if dep.Type == dependencyTypeRequired {
|
if dep.Type == dependencyTypeRequired {
|
||||||
depIDPendingQueue = append(depIDPendingQueue, mapDepOverride(dep.ModID, isQuilt))
|
depIDPendingQueue = append(depIDPendingQueue, mapDepOverride(dep.ModID, isQuilt, primaryMCVersion))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,7 +197,7 @@ var installCmd = &cobra.Command{
|
|||||||
|
|
||||||
for _, dep := range depFileInfo.Dependencies {
|
for _, dep := range depFileInfo.Dependencies {
|
||||||
if dep.Type == dependencyTypeRequired {
|
if dep.Type == dependencyTypeRequired {
|
||||||
depIDPendingQueue = append(depIDPendingQueue, mapDepOverride(dep.ModID, isQuilt))
|
depIDPendingQueue = append(depIDPendingQueue, mapDepOverride(dep.ModID, isQuilt, primaryMCVersion))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,6 +228,10 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
|||||||
// TODO: could get installed version IDs, and compare to install the newest - i.e. preferring pinned versions over getting absolute latest?
|
// TODO: could get installed version IDs, and compare to install the newest - i.e. preferring pinned versions over getting absolute latest?
|
||||||
installedProjects := getInstalledProjectIDs(index)
|
installedProjects := getInstalledProjectIDs(index)
|
||||||
isQuilt := slices.Contains(pack.GetLoaders(), "quilt")
|
isQuilt := slices.Contains(pack.GetLoaders(), "quilt")
|
||||||
|
mcVersion, err := pack.GetMCVersion()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
var depMetadata []depMetadataStore
|
var depMetadata []depMetadataStore
|
||||||
var depProjectIDPendingQueue []string
|
var depProjectIDPendingQueue []string
|
||||||
@ -237,7 +241,7 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
|||||||
// TODO: recommend optional dependencies?
|
// TODO: recommend optional dependencies?
|
||||||
if dep.DependencyType != nil && *dep.DependencyType == "required" {
|
if dep.DependencyType != nil && *dep.DependencyType == "required" {
|
||||||
if dep.ProjectID != nil {
|
if dep.ProjectID != nil {
|
||||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt))
|
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt, mcVersion))
|
||||||
}
|
}
|
||||||
if dep.VersionID != nil {
|
if dep.VersionID != nil {
|
||||||
depVersionIDPendingQueue = append(depVersionIDPendingQueue, *dep.VersionID)
|
depVersionIDPendingQueue = append(depVersionIDPendingQueue, *dep.VersionID)
|
||||||
@ -256,7 +260,7 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
for _, v := range depVersions {
|
for _, v := range depVersions {
|
||||||
// Add project ID to queue
|
// Add project ID to queue
|
||||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*v.ProjectID, isQuilt))
|
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*v.ProjectID, isQuilt, mcVersion))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("Error retrieving dependency data: %s\n", err.Error())
|
fmt.Printf("Error retrieving dependency data: %s\n", err.Error())
|
||||||
@ -305,7 +309,7 @@ func installVersion(project *modrinthApi.Project, version *modrinthApi.Version,
|
|||||||
// TODO: recommend optional dependencies?
|
// TODO: recommend optional dependencies?
|
||||||
if dep.DependencyType != nil && *dep.DependencyType == "required" {
|
if dep.DependencyType != nil && *dep.DependencyType == "required" {
|
||||||
if dep.ProjectID != nil {
|
if dep.ProjectID != nil {
|
||||||
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt))
|
depProjectIDPendingQueue = append(depProjectIDPendingQueue, mapDepOverride(*dep.ProjectID, isQuilt, mcVersion))
|
||||||
}
|
}
|
||||||
if dep.VersionID != nil {
|
if dep.VersionID != nil {
|
||||||
depVersionIDPendingQueue = append(depVersionIDPendingQueue, *dep.VersionID)
|
depVersionIDPendingQueue = append(depVersionIDPendingQueue, *dep.VersionID)
|
||||||
|
@ -427,10 +427,17 @@ func resolveVersion(project *modrinthApi.Project, version string) (*modrinthApi.
|
|||||||
return nil, fmt.Errorf("unable to find version %s", version)
|
return nil, fmt.Errorf("unable to find version %s", version)
|
||||||
}
|
}
|
||||||
|
|
||||||
func mapDepOverride(depID string, isQuilt bool) string {
|
// mapDepOverride transforms manual dependency overrides (which will likely be removed when packwiz is able to determine provided mods)
|
||||||
|
func mapDepOverride(depID string, isQuilt bool, mcVersion string) string {
|
||||||
if isQuilt && (depID == "P7dR8mSH" || depID == "fabric-api") {
|
if isQuilt && (depID == "P7dR8mSH" || depID == "fabric-api") {
|
||||||
// Transform FAPI dependencies to QFAPI/QSL dependencies when using Quilt
|
// Transform FAPI dependencies to QFAPI/QSL dependencies when using Quilt
|
||||||
return "qvIfYCYJ"
|
return "qvIfYCYJ"
|
||||||
}
|
}
|
||||||
|
if isQuilt && (depID == "Ha28R6CL" || depID == "fabric-language-kotlin") {
|
||||||
|
// Transform FLK dependencies to QKL dependencies when using Quilt >=1.19.2 non-snapshot
|
||||||
|
if flexver.Less("1.19.1", mcVersion) && flexver.Less(mcVersion, "2.0.0") {
|
||||||
|
return "lwVhp9o5"
|
||||||
|
}
|
||||||
|
}
|
||||||
return depID
|
return depID
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user