Multiloader scaffold: Architectury common+fabric+forge+neoforge (1.21.1)

Convert the single-loader NeoForge project into an Architectury multiloader:
- root/settings/subproject build.gradle, Gradle pinned to 8.10.2 (Loom needs 8.x)
- common: generic SkinsgCommands<S> + SkinsgClient bootstrap
- per-loader entrypoints (Fabric ClientModInitializer, Forge/NeoForge @Mod) + metadata
- migrate-to-multiloader.sh moves the loader/version-agnostic core into common/
- MULTILOADER.md: build/toolchain/proxy + 1.20.1 switch incl. rewritten cape mixin

main (working NeoForge 1.21.1) untouched.
This commit is contained in:
f1den
2026-07-05 18:10:53 +03:00
parent 6e3de2716c
commit c11a278050
18 changed files with 684 additions and 188 deletions
+41
View File
@@ -0,0 +1,41 @@
plugins {
id "com.gradleup.shadow"
}
architectury {
platformSetupLoomIde()
neoForge()
}
configurations {
common
shadowBundle
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentNeoForge.extendsFrom common
}
dependencies {
neoForge "net.neoforged:neoforge:${rootProject.neoforge_version}"
modApi "dev.architectury:architectury-neoforge:${rootProject.architectury_api_version}"
common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowBundle project(path: ":common", configuration: "transformProductionNeoForge")
}
processResources {
inputs.property "version", project.version
filesMatching("META-INF/neoforge.mods.toml") {
expand version: project.version
}
}
shadowJar {
configurations = [project.configurations.shadowBundle]
archiveClassifier = "dev-shadow"
}
remapJar {
input.set shadowJar.archiveFile
archiveClassifier = null
}