mirror of
https://github.com/packwiz/packwiz.git
synced 2025-04-19 21:16:30 +02:00
Support NeoForge as a loader (compatible with Forge mods)
TODO: implement support in migrate command
This commit is contained in:
parent
38dcc505e5
commit
234f927be9
@ -198,7 +198,10 @@ func (pack Pack) GetLoaders() (loaders []string) {
|
|||||||
} else if _, hasFabric := pack.Versions["fabric"]; hasFabric {
|
} else if _, hasFabric := pack.Versions["fabric"]; hasFabric {
|
||||||
loaders = append(loaders, "fabric")
|
loaders = append(loaders, "fabric")
|
||||||
}
|
}
|
||||||
if _, hasForge := pack.Versions["forge"]; hasForge {
|
if _, hasNeoForge := pack.Versions["neoforge"]; hasNeoForge {
|
||||||
|
loaders = append(loaders, "neoforge")
|
||||||
|
loaders = append(loaders, "forge") // Backwards-compatible; for now (could be configurable later)
|
||||||
|
} else if _, hasForge := pack.Versions["forge"]; hasForge {
|
||||||
loaders = append(loaders, "forge")
|
loaders = append(loaders, "forge")
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
@ -51,6 +51,11 @@ var ModLoaders = map[string]ModLoaderComponent{
|
|||||||
FriendlyName: "Quilt loader",
|
FriendlyName: "Quilt loader",
|
||||||
VersionListGetter: FetchMavenVersionList("https://maven.quiltmc.org/repository/release/org/quiltmc/quilt-loader/maven-metadata.xml"),
|
VersionListGetter: FetchMavenVersionList("https://maven.quiltmc.org/repository/release/org/quiltmc/quilt-loader/maven-metadata.xml"),
|
||||||
},
|
},
|
||||||
|
"neoforge": {
|
||||||
|
Name: "neoforge",
|
||||||
|
FriendlyName: "NeoForge",
|
||||||
|
VersionListGetter: FetchMavenVersionPrefixedListStrip("https://maven.neoforged.net/releases/net/neoforged/forge/maven-metadata.xml", "NeoForge"),
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func FetchMavenVersionList(url string) func(mcVersion string) ([]string, string, error) {
|
func FetchMavenVersionList(url string) func(mcVersion string) ([]string, string, error) {
|
||||||
|
@ -230,23 +230,19 @@ func getSearchLoaderType(pack core.Pack) modloaderType {
|
|||||||
_, hasFabric := dependencies["fabric"]
|
_, hasFabric := dependencies["fabric"]
|
||||||
_, hasQuilt := dependencies["quilt"]
|
_, hasQuilt := dependencies["quilt"]
|
||||||
_, hasForge := dependencies["forge"]
|
_, hasForge := dependencies["forge"]
|
||||||
if (hasFabric || hasQuilt) && hasForge {
|
_, hasNeoForge := dependencies["neoforge"]
|
||||||
return modloaderTypeAny
|
if hasFabric && !hasQuilt && !hasForge && !hasNeoForge {
|
||||||
} else if hasFabric || hasQuilt {
|
|
||||||
return modloaderTypeFabric
|
return modloaderTypeFabric
|
||||||
} else if hasQuilt {
|
|
||||||
// Backwards-compatible with Fabric for now (could be configurable later)
|
|
||||||
// since we can't filter by more than one loader, just accept any and filter the response
|
|
||||||
return modloaderTypeAny
|
|
||||||
} else if hasForge {
|
|
||||||
return modloaderTypeForge
|
|
||||||
} else {
|
|
||||||
return modloaderTypeAny
|
|
||||||
}
|
}
|
||||||
|
if hasForge && !hasNeoForge && !hasFabric && !hasQuilt {
|
||||||
|
return modloaderTypeForge
|
||||||
|
}
|
||||||
|
// We can't filter by more than one loader: accept any and filter the response
|
||||||
|
return modloaderTypeAny
|
||||||
}
|
}
|
||||||
|
|
||||||
// Crude way of preferring Quilt to Fabric: larger types are preferred
|
// Crude way of preferring Quilt to Fabric / NeoForge to Forge: larger types are preferred
|
||||||
// so Quilt > Fabric > Forge > Any
|
// so NeoForge > Quilt > Fabric > Forge > Any
|
||||||
|
|
||||||
func filterLoaderTypeIndex(packLoaders []string, modLoaderType modloaderType) (modloaderType, bool) {
|
func filterLoaderTypeIndex(packLoaders []string, modLoaderType modloaderType) (modloaderType, bool) {
|
||||||
if len(packLoaders) == 0 || modLoaderType == modloaderTypeAny {
|
if len(packLoaders) == 0 || modLoaderType == modloaderTypeAny {
|
||||||
|
@ -193,6 +193,8 @@ var exportCmd = &cobra.Command{
|
|||||||
dependencies["fabric-loader"] = fabricVersion
|
dependencies["fabric-loader"] = fabricVersion
|
||||||
} else if forgeVersion, ok := pack.Versions["forge"]; ok {
|
} else if forgeVersion, ok := pack.Versions["forge"]; ok {
|
||||||
dependencies["forge"] = forgeVersion
|
dependencies["forge"] = forgeVersion
|
||||||
|
} else if neoforgeVersion, ok := pack.Versions["neoforge"]; ok {
|
||||||
|
dependencies["neoforge"] = neoforgeVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
manifest := Pack{
|
manifest := Pack{
|
||||||
|
@ -155,7 +155,7 @@ func getProjectTypeFolder(projectType string, fileLoaders []string, packLoaders
|
|||||||
}
|
}
|
||||||
return "shaderpacks", nil
|
return "shaderpacks", nil
|
||||||
} else if projectType == "mod" {
|
} else if projectType == "mod" {
|
||||||
// Look up pack loaders in the list of loaders (note this is currently filtered to quilt/fabric/forge)
|
// Look up pack loaders in the list of loaders (note this is currently filtered to quilt/fabric/neoforge/forge)
|
||||||
bestLoaderIdx := math.MaxInt
|
bestLoaderIdx := math.MaxInt
|
||||||
for _, v := range fileLoaders {
|
for _, v := range fileLoaders {
|
||||||
if slices.Contains(packLoaders, v) {
|
if slices.Contains(packLoaders, v) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user