mirror of
https://github.com/packwiz/packwiz.git
synced 2025-04-12 01:16:30 +02:00
Clean up code, filter version numbers for NeoForge as well as Forge
NeoForge doesn't seem to have an update checker JSON yet, so we can't determine the recommended version
This commit is contained in:
parent
234f927be9
commit
4c23e264b0
@ -102,7 +102,7 @@ var initCmd = &cobra.Command{
|
||||
}
|
||||
}
|
||||
v := componentVersion
|
||||
if loader.Name == "forge" {
|
||||
if loader.Name == "forge" || loader.Name == "neoforge" {
|
||||
v = cmdshared.GetRawForgeVersion(componentVersion)
|
||||
}
|
||||
if !slices.Contains(versions, v) {
|
||||
|
18
core/pack.go
18
core/pack.go
@ -191,7 +191,7 @@ func (pack Pack) GetPackName() string {
|
||||
}
|
||||
}
|
||||
|
||||
func (pack Pack) GetLoaders() (loaders []string) {
|
||||
func (pack Pack) GetCompatibleLoaders() (loaders []string) {
|
||||
if _, hasQuilt := pack.Versions["quilt"]; hasQuilt {
|
||||
loaders = append(loaders, "quilt")
|
||||
loaders = append(loaders, "fabric") // Backwards-compatible; for now (could be configurable later)
|
||||
@ -206,3 +206,19 @@ func (pack Pack) GetLoaders() (loaders []string) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (pack Pack) GetLoaders() (loaders []string) {
|
||||
if _, hasQuilt := pack.Versions["quilt"]; hasQuilt {
|
||||
loaders = append(loaders, "quilt")
|
||||
}
|
||||
if _, hasFabric := pack.Versions["fabric"]; hasFabric {
|
||||
loaders = append(loaders, "fabric")
|
||||
}
|
||||
if _, hasNeoForge := pack.Versions["neoforge"]; hasNeoForge {
|
||||
loaders = append(loaders, "neoforge")
|
||||
}
|
||||
if _, hasForge := pack.Versions["forge"]; hasForge {
|
||||
loaders = append(loaders, "forge")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -414,7 +414,7 @@ func (u cfUpdater) CheckUpdate(mods []*core.Mod, pack core.Pack) ([]core.UpdateC
|
||||
}
|
||||
}
|
||||
|
||||
packLoaders := pack.GetLoaders()
|
||||
packLoaders := pack.GetCompatibleLoaders()
|
||||
|
||||
for i, v := range mods {
|
||||
projectRaw, ok := v.GetParsedUpdateData("curseforge")
|
||||
|
@ -120,14 +120,14 @@ var installCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
var fileInfoData modFileInfo
|
||||
fileInfoData, err = getLatestFile(modInfoData, mcVersions, fileID, pack.GetLoaders())
|
||||
fileInfoData, err = getLatestFile(modInfoData, mcVersions, fileID, pack.GetCompatibleLoaders())
|
||||
if err != nil {
|
||||
fmt.Printf("Failed to get file for project: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if len(fileInfoData.Dependencies) > 0 {
|
||||
isQuilt := slices.Contains(pack.GetLoaders(), "quilt")
|
||||
isQuilt := slices.Contains(pack.GetCompatibleLoaders(), "quilt")
|
||||
|
||||
var depsInstallable []installableDep
|
||||
var depIDPendingQueue []uint32
|
||||
@ -191,7 +191,7 @@ var installCmd = &cobra.Command{
|
||||
depIDPendingQueue = depIDPendingQueue[:0]
|
||||
|
||||
for _, currData := range depInfoData {
|
||||
depFileInfo, err := getLatestFile(currData, mcVersions, 0, pack.GetLoaders())
|
||||
depFileInfo, err := getLatestFile(currData, mcVersions, 0, pack.GetCompatibleLoaders())
|
||||
if err != nil {
|
||||
fmt.Printf("Error retrieving dependency data: %s\n", err.Error())
|
||||
continue
|
||||
|
@ -24,17 +24,7 @@ var loaderCommand = &cobra.Command{
|
||||
fmt.Printf("Error loading pack: %s\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
// Get our current loader, would use the modpack.GetLoaders function
|
||||
// but, it supplements Quilt with Fabric, which isn't needed for this
|
||||
var currentLoaders []string
|
||||
// Add all the keys from modpack.Versions
|
||||
for key := range modpack.Versions {
|
||||
// If it ain't in core.ModLoaders, we don't want it
|
||||
if _, ok := core.ModLoaders[key]; !ok {
|
||||
continue
|
||||
}
|
||||
currentLoaders = append(currentLoaders, key)
|
||||
}
|
||||
var currentLoaders = modpack.GetLoaders()
|
||||
// Do some sanity checks on the current loader slice
|
||||
if len(currentLoaders) == 0 {
|
||||
fmt.Println("No loader is currently set in your pack.toml!")
|
||||
@ -90,8 +80,8 @@ var loaderCommand = &cobra.Command{
|
||||
fmt.Println("Updating to explicit loader version")
|
||||
// This one is easy :D
|
||||
versions, _, loader := getVersionsForLoader(currentLoaders[0], mcVersion)
|
||||
// Check if the loader happens to be Forge, since there's two version formats
|
||||
if loader.Name == "forge" {
|
||||
// Check if the loader happens to be Forge/NeoForge, since there's two version formats
|
||||
if loader.Name == "forge" || loader.Name == "neoforge" {
|
||||
wantedVersion := cmdshared.GetRawForgeVersion(args[0])
|
||||
validateVersion(versions, wantedVersion, loader)
|
||||
_ = updatePackToVersion(wantedVersion, modpack, loader)
|
||||
|
@ -227,7 +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")
|
||||
isQuilt := slices.Contains(pack.GetCompatibleLoaders(), "quilt")
|
||||
mcVersion, err := pack.GetMCVersion()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -432,7 +432,7 @@ func createFileMeta(project *modrinthApi.Project, version *modrinthApi.Version,
|
||||
var path string
|
||||
folder := viper.GetString("meta-folder")
|
||||
if folder == "" {
|
||||
folder, err = getProjectTypeFolder(*project.ProjectType, version.Loaders, pack.GetLoaders())
|
||||
folder, err = getProjectTypeFolder(*project.ProjectType, version.Loaders, pack.GetCompatibleLoaders())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -313,9 +313,9 @@ func getLatestVersion(projectID string, name string, pack core.Pack) (*modrinthA
|
||||
}
|
||||
var loaders []string
|
||||
if viper.GetString("datapack-folder") != "" {
|
||||
loaders = append(pack.GetLoaders(), withDatapackPathMRLoaders...)
|
||||
loaders = append(pack.GetCompatibleLoaders(), withDatapackPathMRLoaders...)
|
||||
} else {
|
||||
loaders = append(pack.GetLoaders(), defaultMRLoaders...)
|
||||
loaders = append(pack.GetCompatibleLoaders(), defaultMRLoaders...)
|
||||
}
|
||||
|
||||
result, err := mrDefaultClient.Versions.ListVersions(projectID, modrinthApi.ListVersionsOptions{
|
||||
|
Loading…
x
Reference in New Issue
Block a user