diff --git a/core/pack.go b/core/pack.go index 141a18e..12e60b5 100644 --- a/core/pack.go +++ b/core/pack.go @@ -173,3 +173,16 @@ func (pack Pack) GetPackName() string { return pack.Name + "-" + pack.Version } } + +func (pack Pack) GetLoaders() (loaders []string) { + if _, hasQuilt := pack.Versions["quilt"]; hasQuilt { + loaders = append(loaders, "quilt") + loaders = append(loaders, "fabric") // Backwards-compatible; for now (could be configurable later) + } else if _, hasFabric := pack.Versions["fabric"]; hasFabric { + loaders = append(loaders, "fabric") + } + if _, hasForge := pack.Versions["forge"]; hasForge { + loaders = append(loaders, "forge") + } + return +} diff --git a/curseforge/curseforge.go b/curseforge/curseforge.go index 2d48bca..5501705 100644 --- a/curseforge/curseforge.go +++ b/curseforge/curseforge.go @@ -235,24 +235,6 @@ func getSearchLoaderType(pack core.Pack) int { } } -func getLoaders(pack core.Pack) (loaders []string) { - _, hasFabric := pack.Versions["fabric"] - if hasFabric { - loaders = append(loaders, "fabric") - } - if _, hasQuilt := pack.Versions["quilt"]; hasQuilt { - // Backwards-compatible with Fabric for now (could be configurable later) - if !hasFabric { - loaders = append(loaders, "fabric") - } - loaders = append(loaders, "quilt") - } - if _, hasForge := pack.Versions["forge"]; hasForge { - loaders = append(loaders, "forge") - } - return -} - func matchLoaderType(packLoaders []string, modLoaderType int) bool { if len(packLoaders) == 0 || modLoaderType == modloaderTypeAny { return true @@ -361,7 +343,7 @@ func (u cfUpdater) CheckUpdate(mods []core.Mod, mcVersion string, pack core.Pack } } - packLoaders := getLoaders(pack) + packLoaders := pack.GetLoaders() for i, v := range mods { projectRaw, ok := v.GetParsedUpdateData("curseforge") diff --git a/curseforge/install.go b/curseforge/install.go index 4db1354..47d3714 100644 --- a/curseforge/install.go +++ b/curseforge/install.go @@ -114,7 +114,7 @@ var installCmd = &cobra.Command{ } var fileInfoData modFileInfo - fileInfoData, err = getLatestFile(modInfoData, mcVersion, fileID, getLoaders(pack)) + fileInfoData, err = getLatestFile(modInfoData, mcVersion, fileID, pack.GetLoaders()) if err != nil { fmt.Printf("Failed to get file for project: %v\n", err) os.Exit(1) @@ -187,7 +187,7 @@ var installCmd = &cobra.Command{ depIDPendingQueue = depIDPendingQueue[:0] for _, currData := range depInfoData { - depFileInfo, err := getLatestFile(currData, mcVersion, 0, getLoaders(pack)) + depFileInfo, err := getLatestFile(currData, mcVersion, 0, pack.GetLoaders()) if err != nil { fmt.Printf("Error retrieving dependency data: %s\n", err.Error()) continue diff --git a/modrinth/modrinth.go b/modrinth/modrinth.go index b431975..f1a7712 100644 --- a/modrinth/modrinth.go +++ b/modrinth/modrinth.go @@ -171,7 +171,7 @@ func getLatestVersion(modID string, pack core.Pack) (Version, error) { return Version{}, err } - loadersEncoded, err := json.Marshal(getLoaders(pack)) + loadersEncoded, err := json.Marshal(pack.GetLoaders()) if err != nil { return Version{}, err } @@ -343,21 +343,3 @@ func (v VersionFile) getBestHash() (string, string) { //No hashes were present return "", "" } - -func getLoaders(pack core.Pack) []string { - dependencies := pack.Versions - - var list []string - - if _, hasQuilt := dependencies["quilt"]; hasQuilt { - list = append(list, "quilt") - list = append(list, "fabric") // Backwards-compatible; for now (could be configurable later) - } else if _, hasFabric := dependencies["fabric"]; hasFabric { - list = append(list, "fabric") - } - if _, hasForge := dependencies["forge"]; hasForge { - list = append(list, "forge") - } - - return list -}