Merge duplicate getLoaders methods into single core method

This commit is contained in:
comp500 2022-06-08 22:34:50 +01:00
parent 72fbc68256
commit f533e677ca
4 changed files with 17 additions and 40 deletions

View File

@ -173,3 +173,16 @@ func (pack Pack) GetPackName() string {
return pack.Name + "-" + pack.Version 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
}

View File

@ -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 { func matchLoaderType(packLoaders []string, modLoaderType int) bool {
if len(packLoaders) == 0 || modLoaderType == modloaderTypeAny { if len(packLoaders) == 0 || modLoaderType == modloaderTypeAny {
return true 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 { for i, v := range mods {
projectRaw, ok := v.GetParsedUpdateData("curseforge") projectRaw, ok := v.GetParsedUpdateData("curseforge")

View File

@ -114,7 +114,7 @@ var installCmd = &cobra.Command{
} }
var fileInfoData modFileInfo var fileInfoData modFileInfo
fileInfoData, err = getLatestFile(modInfoData, mcVersion, fileID, getLoaders(pack)) fileInfoData, err = getLatestFile(modInfoData, mcVersion, fileID, pack.GetLoaders())
if err != nil { if err != nil {
fmt.Printf("Failed to get file for project: %v\n", err) fmt.Printf("Failed to get file for project: %v\n", err)
os.Exit(1) os.Exit(1)
@ -187,7 +187,7 @@ var installCmd = &cobra.Command{
depIDPendingQueue = depIDPendingQueue[:0] depIDPendingQueue = depIDPendingQueue[:0]
for _, currData := range depInfoData { for _, currData := range depInfoData {
depFileInfo, err := getLatestFile(currData, mcVersion, 0, getLoaders(pack)) depFileInfo, err := getLatestFile(currData, mcVersion, 0, pack.GetLoaders())
if err != nil { if err != nil {
fmt.Printf("Error retrieving dependency data: %s\n", err.Error()) fmt.Printf("Error retrieving dependency data: %s\n", err.Error())
continue continue

View File

@ -171,7 +171,7 @@ func getLatestVersion(modID string, pack core.Pack) (Version, error) {
return Version{}, err return Version{}, err
} }
loadersEncoded, err := json.Marshal(getLoaders(pack)) loadersEncoded, err := json.Marshal(pack.GetLoaders())
if err != nil { if err != nil {
return Version{}, err return Version{}, err
} }
@ -343,21 +343,3 @@ func (v VersionFile) getBestHash() (string, string) {
//No hashes were present //No hashes were present
return "", "" 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
}