Chained mod target overlays

- Mod targets list an ordered overlay chain; later overlays replace earlier ones and earlier source replacements apply to inherited files
- Forge and NeoForge metadata take their loader version range from the target
- The Fabric permissions library is bundled only for targets that declare it
- Dropped the 1.21.1 mods.toml copies that only differed in the loader range
This commit is contained in:
Brian Neumann-Fopiano committed 2026-10-16 10:44:12 -04:00
1 parent 03c2630497
commit 79e7b0c79e
9 files changed
+116 -58

No files matched your search

+4
View File
@@ -181,6 +181,8 @@ dependencies {
fabricApi = ((Map<String, String>) irisModTarget.fabricModules).collect { String module, String moduleVersion ->
"net.fabricmc.fabric-api:${module}:${moduleVersion}".toString()
}
}
if (irisModTarget.fabricPermissions != null) {
fabricApi.add("me.lucko:fabric-permissions-api:${irisModTarget.fabricPermissions}".toString())
}
fabricApi.each { Object notation ->
@@ -296,6 +298,8 @@ if (irisModTarget.fabricModules != null) {
nestedFabricApiJars = ((Map<String, String>) irisModTarget.fabricModules).collectEntries { String module, String ignored ->
[(module): "${module}.jar".toString()]
}
}
if (irisModTarget.fabricPermissions != null) {
nestedFabricApiJars.put('fabric-permissions-api', 'fabric-permissions-api.jar')
}
+2 -1
View File
@@ -263,8 +263,9 @@ tasks.named('test').configure {
processResources {
inputs.property('version', irisVersion)
inputs.property('minecraftVersion', minecraftVersion)
inputs.property('loaderRange', irisModTarget.forgeRange.toString())
filesMatching('META-INF/mods.toml') {
expand('version': irisVersion, 'minecraftVersion': minecraftVersion)
expand('version': irisVersion, 'minecraftVersion': minecraftVersion, 'loaderRange': irisModTarget.forgeRange.toString())
}
}
@@ -1,5 +1,5 @@
modLoader = "javafml"
loaderVersion = "[66,67)"
loaderVersion = "${loaderRange}"
license = "GPL-3.0"
issueTrackerURL = "https://github.com/VolmitSoftware/Iris/issues"
@@ -16,7 +16,7 @@ logoFile = "assets/irisworldgen/icon.png"
[[dependencies.irisworldgen]]
modId = "forge"
mandatory = true
versionRange = "[66,67)"
versionRange = "${loaderRange}"
ordering = "NONE"
side = "BOTH"
+2 -1
View File
@@ -264,8 +264,9 @@ tasks.named('test').configure {
processResources {
inputs.property('version', irisVersion)
inputs.property('minecraftVersion', minecraftVersion)
inputs.property('loaderRange', irisModTarget.neoForgeRange.toString())
filesMatching('META-INF/neoforge.mods.toml') {
expand('version': irisVersion, 'minecraftVersion': minecraftVersion)
expand('version': irisVersion, 'minecraftVersion': minecraftVersion, 'loaderRange': irisModTarget.neoForgeRange.toString())
}
}
@@ -25,7 +25,7 @@ logoFile = "assets/irisworldgen/icon.png"
[[dependencies.irisworldgen]]
modId = "neoforge"
type = "required"
versionRange = "[26.3.0.65-beta,26.4)"
versionRange = "${loaderRange}"
ordering = "NONE"
side = "BOTH"