WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 1aa08f8

Browse files
committed
Use Fabric Loom + NeoForge MDG instead of Arch Loom, update to 1.21.11
1 parent 3391909 commit 1aa08f8

File tree

24 files changed

+317
-121
lines changed

24 files changed

+317
-121
lines changed

build.gradle.kts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
plugins {
2-
id("architectury-plugin")
3-
id("dev.architectury.loom")
2+
id("fabric-loom")
43
kotlin("jvm")
54
kotlin("plugin.serialization")
65
}
76

87
val minecraftVersion = stonecutter.current.version
98

10-
architectury.common(stonecutter.tree.branches.mapNotNull {
11-
if (stonecutter.current.project !in it) null
12-
else it.project.prop("loom.platform")
13-
})
9+
fun loaderDep(dep: String): Any {
10+
return mod.dep(dep, "[UNSUPPORTED]")
11+
}
1412

1513
dependencies {
16-
modCompileOnly("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}")
14+
minecraft("com.mojang:minecraft:$minecraftVersion")
15+
mappings(loom.layered() {
16+
officialMojangMappings()
17+
parchment("org.parchmentmc.data:parchment-${loaderDep("parchment_version")}:${loaderDep("parchment_snapshot")}@zip")
18+
})
19+
20+
modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}")
1721
modCompileOnly("net.fabricmc:fabric-language-kotlin:${mod.dep("fabric_kotlin")}+kotlin.${mod.dep("kotlin")}")
1822

1923
implementation("de.maxhenkel.voicechat:voicechat-api:${mod.dep("voicechat_api")}")

buildSrc/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,9 @@ plugins {
55

66
repositories {
77
mavenCentral()
8+
maven("https://maven.fabricmc.net")
9+
}
10+
11+
dependencies {
12+
implementation("net.fabricmc:fabric-loom:1.14-SNAPSHOT")
813
}

buildSrc/src/main/kotlin/build-extensions.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,26 @@ fun DependencyHandler.modOptional(notation: String, version: String, enabled: Bo
2323
}
2424
}
2525

26+
fun DependencyHandler.optional(notation: String, version: String, enabled: Boolean = true) {
27+
if (version != "[UNSUPPORTED]") {
28+
if (enabled) {
29+
add("api", "$notation:$version")
30+
} else {
31+
add("compileOnly", "$notation:$version")
32+
}
33+
}
34+
}
35+
36+
fun DependencyHandler.optional(notation: String, version: String, enabled: Boolean = true, builder: (String) -> Any) {
37+
if (version != "[UNSUPPORTED]") {
38+
if (enabled) {
39+
add("api", builder.invoke("$notation:$version"))
40+
} else {
41+
add("compileOnly", builder.invoke("$notation:$version"))
42+
}
43+
}
44+
}
45+
2646
fun ProcessResources.properties(files: Iterable<String>, vararg properties: Pair<String, Any>) {
2747
for ((name, value) in properties) inputs.property(name, value)
2848
filesMatching(files) {

buildSrc/src/main/kotlin/loom.kt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
//import net.fabricmc.loom.api.LoomGradleExtensionAPI
2+
//import net.fabricmc.loom.task.RemapJarTask
3+
import org.gradle.api.Project
4+
import org.gradle.jvm.tasks.Jar
5+
6+
//fun Project.setupLoom() {
7+
// val loom = this.extensions.getByName<LoomGradleExtensionAPI>("loom")
8+
//
9+
// loom.silentMojangMappingsLicense()
10+
// loom.decompilers {
11+
// get("vineflower").apply { // Adds names to lambdas - useful for mixins
12+
// options.put("mark-corresponding-synthetics", "1")
13+
// }
14+
// }
15+
//
16+
// loom.mixin.useLegacyMixinAp = false
17+
//
18+
// tasks.named<RemapJarTask>("remapJar") {
19+
// injectAccessWidener = true
20+
// input = tasks.named<Jar>("shadowJar").get().archiveFile
21+
// archiveClassifier = null
22+
// dependsOn(tasks.named<Jar>("shadowJar"))
23+
// }
24+
//}

fabric/build.gradle.kts

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
@file:Suppress("UnstableApiUsage")
22

3+
import net.fabricmc.loom.task.RemapJarTask
4+
35

46
plugins {
5-
id("dev.architectury.loom")
6-
id("architectury-plugin")
7+
id("fabric-loom")
78
id("com.gradleup.shadow")
89
}
910

@@ -13,11 +14,6 @@ val common: Project = requireNotNull(stonecutter.node.sibling("")?.project) {
1314
"No common project for $project"
1415
}
1516

16-
architectury {
17-
platformSetupLoomIde()
18-
fabric()
19-
}
20-
2117
val commonBundle: Configuration by configurations.creating {
2218
isCanBeConsumed = false
2319
isCanBeResolved = true
@@ -31,15 +27,25 @@ val shadowBundle: Configuration by configurations.creating {
3127
configurations {
3228
compileClasspath.get().extendsFrom(commonBundle)
3329
runtimeClasspath.get().extendsFrom(commonBundle)
34-
get("developmentFabric").extendsFrom(commonBundle)
30+
// get("developmentFabric").extendsFrom(commonBundle)
3531
}
3632

3733
repositories {
3834
maven("https://maven.terraformersmc.com")
3935
maven("https://maven.nucleoid.xyz/") // Not sure why but we need this
4036
}
4137

38+
fun loaderDep(dep: String): Any {
39+
return common?.project?.mod?.dep(dep) ?: mod.dep(dep, "[UNSUPPORTED]")
40+
}
41+
4242
dependencies {
43+
minecraft("com.mojang:minecraft:$minecraftVersion")
44+
mappings(loom.layered() {
45+
officialMojangMappings()
46+
parchment("org.parchmentmc.data:parchment-${loaderDep("parchment_version")}:${loaderDep("parchment_snapshot")}@zip")
47+
})
48+
4349
modImplementation("net.fabricmc:fabric-loader:${common.mod.dep("fabric_loader")}")
4450
modImplementation("net.fabricmc.fabric-api:fabric-api:${common.mod.dep("fabric_api")}")
4551
modImplementation("net.fabricmc:fabric-language-kotlin:${common.mod.dep("fabric_kotlin")}+kotlin.${mod.dep("kotlin")}")
@@ -70,6 +76,15 @@ dependencies {
7076
shadowBundle("xyz.bluspring.unitytranslate:UnityTranslateLib-natives-linux-amd64:${mod.commonDep("unitytranslatelib", common.mod)}")
7177
}
7278

79+
loom.mixin.useLegacyMixinAp = false
80+
81+
tasks.named<RemapJarTask>("remapJar") {
82+
// injectAccessWidener = true
83+
input = tasks.named<Jar>("shadowJar").get().archiveFile
84+
archiveClassifier = null
85+
dependsOn(tasks.named<Jar>("shadowJar"))
86+
}
87+
7388
tasks.shadowJar {
7489
configurations = listOf(shadowBundle)
7590
archiveClassifier = "dev-shadow"

forge/build.gradle.kts

Lines changed: 62 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
plugins {
2-
id("dev.architectury.loom")
3-
id("architectury-plugin")
2+
id("net.neoforged.moddev.legacyforge")
43
id("com.gradleup.shadow")
54
}
65

@@ -11,9 +10,33 @@ val common: Project = requireNotNull(stonecutter.node.sibling("")?.project) {
1110
"No common project for $project"
1211
}
1312

14-
architectury {
15-
platformSetupLoomIde()
16-
forge()
13+
legacyForge.version = "$minecraftVersion-${common.mod.dep("forge")}"
14+
15+
fun loaderDep(dep: String): Any {
16+
return common?.project?.mod?.dep(dep) ?: mod.dep(dep, "[UNSUPPORTED]")
17+
}
18+
19+
legacyForge {
20+
parchment {
21+
minecraftVersion.set(loaderDep("parchment_version") as String)
22+
mappingsVersion.set(loaderDep("parchment_snapshot") as String)
23+
}
24+
25+
runs {
26+
create("client") {
27+
client()
28+
}
29+
30+
create("server") {
31+
server()
32+
}
33+
}
34+
35+
mods {
36+
create("unitytranslate") {
37+
sourceSet(sourceSets.main.get())
38+
}
39+
}
1740
}
1841

1942
val commonBundle: Configuration by configurations.creating {
@@ -29,15 +52,20 @@ val shadowBundle: Configuration by configurations.creating {
2952
configurations {
3053
compileClasspath.get().extendsFrom(commonBundle)
3154
runtimeClasspath.get().extendsFrom(commonBundle)
32-
get("developmentForge").extendsFrom(commonBundle)
55+
// get("developmentForge").extendsFrom(commonBundle)
56+
}
57+
58+
mixin {
59+
add(sourceSets.main.get(), "mixins.unitytranslate.refmap.json")
60+
config("unitytranslate.mixins.json")
3361
}
3462

3563
repositories {
3664
maven("https://maven.minecraftforge.net/")
3765
}
3866

3967
dependencies {
40-
"forge"("net.minecraftforge:forge:$minecraftVersion-${common.mod.dep("forge")}")
68+
annotationProcessor("org.spongepowered:mixin:0.8.5:processor")
4169

4270
modImplementation("maven.modrinth:talk-balloons:${common.mod.dep("talk_balloons")}+${common.mod.dep("talk_balloons_mc")}-forge")
4371
modImplementation("me.shedaniel.cloth:cloth-config-forge:${common.mod.dep("cloth_config")}")
@@ -51,23 +79,31 @@ dependencies {
5179
modOptional("maven.modrinth:plasmo-voice", "forge-${mod.commonDep("plasmo_mc", common.mod, minecraftVersion)}-${mod.commonDep("plasmo", common.mod)}", common.mod.prop("proximity_chat") == "plasmo")
5280
modOptional("maven.modrinth:simple-voice-chat", "forge-$minecraftVersion-${mod.commonDep("voicechat", common.mod)}", common.mod.prop("proximity_chat") == "svc")
5381

54-
minecraftRuntimeLibraries(shadowBundle("org.java-websocket:Java-WebSocket:${mod.commonDep("java_websocket", common.mod)}")!!)
55-
minecraftRuntimeLibraries(shadowBundle("com.squareup.okhttp3:okhttp:${mod.commonDep("okhttp", common.mod)}") {
82+
add("additionalRuntimeClasspath", shadowBundle("org.java-websocket:Java-WebSocket:${mod.commonDep("java_websocket", common.mod)}")!!)
83+
add("additionalRuntimeClasspath", shadowBundle("com.squareup.okhttp3:okhttp:${mod.commonDep("okhttp", common.mod)}") {
5684
exclude("org.jetbrains")
5785
exclude("kotlin")
5886
})
59-
minecraftRuntimeLibraries(shadowBundle("com.github.jnr:jnr-ffi:${mod.commonDep("jnr", common.mod)}")!!)
87+
add("additionalRuntimeClasspath", shadowBundle("com.github.jnr:jnr-ffi:${mod.commonDep("jnr", common.mod)}")!!)
6088

6189
shadowBundle("xyz.bluspring.unitytranslate:UnityTranslateLib:${mod.commonDep("unitytranslatelib", common.mod)}")
6290
shadowBundle("xyz.bluspring.unitytranslate:UnityTranslateLib-natives-windows-amd64:${mod.commonDep("unitytranslatelib", common.mod)}")
6391
shadowBundle("xyz.bluspring.unitytranslate:UnityTranslateLib-natives-linux-amd64:${mod.commonDep("unitytranslatelib", common.mod)}")
6492
}
6593

66-
loom {
67-
runConfigs.all {
68-
isIdeConfigGenerated = true
69-
runDir = "../../../run"
70-
vmArgs("-Dmixin.debug.export=true", "-XX:+AllowEnhancedClassRedefinition")
94+
//loom {
95+
// runConfigs.all {
96+
// isIdeConfigGenerated = true
97+
// runDir = "../../../run"
98+
// vmArgs("-Dmixin.debug.export=true", "-XX:+AllowEnhancedClassRedefinition")
99+
// }
100+
//}
101+
102+
tasks.jar {
103+
manifest {
104+
attributes(mapOf(
105+
"MixinConfigs" to "unitytranslate.mixins.json"
106+
))
71107
}
72108
}
73109

@@ -77,6 +113,10 @@ tasks.shadowJar {
77113
exclude("fabric.mod.json", "architectury.common.json")
78114
}
79115

116+
obfuscation {
117+
reobfuscate(tasks.shadowJar, sourceSets.main.get())
118+
}
119+
80120
tasks.processResources {
81121
properties(listOf("META-INF/neoforge.mods.toml", "META-INF/mods.toml"),
82122
"mod_id" to mod.id,
@@ -98,10 +138,10 @@ tasks.build {
98138
description = "Must run through 'chiseledBuild'"
99139
}
100140

101-
tasks.register<Copy>("buildAndCollect") {
102-
group = "versioned"
103-
description = "Must run through 'chiseledBuild'"
104-
from(tasks.remapJar.get().archiveFile, tasks.remapSourcesJar.get().archiveFile)
105-
into(rootProject.layout.buildDirectory.file("libs/${mod.version}/$loader"))
106-
dependsOn("build")
107-
}
141+
//tasks.register<Copy>("buildAndCollect") {
142+
// group = "versioned"
143+
// description = "Must run through 'chiseledBuild'"
144+
// from(tasks.reobfJar.get().archiveFile, tasks.sourcesJar.get().archiveFile)
145+
// into(rootProject.layout.buildDirectory.file("libs/${mod.version}/$loader"))
146+
// dependsOn("build")
147+
//}

gradle.properties

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@ deps.parchment_snapshot = [VERSIONED]
3131
# https://maven.maxhenkel.de/#/releases/de/maxhenkel/voicechat/voicechat-api
3232
deps.voicechat_api = 2.6.0
3333
# https://github.com/plasmoapp/plasmo-voice/releases
34-
deps.plasmo_api = 2.1.6
34+
deps.plasmo_api = 2.1.8
3535

3636
# https://modrinth.com/mod/simple-voice-chat/versions?g=1.20.1
37-
deps.voicechat = 2.6.6
37+
deps.voicechat = 2.6.10
3838

3939
# https://modrinth.com/plugin/plasmo-voice/versions?g=1.20.1
40-
deps.plasmo = 2.1.6
40+
deps.plasmo = 2.1.8
4141
deps.plasmo_mc = [DEFAULT]
4242

4343
# https://github.com/TooTallNate/Java-WebSocket
4444
deps.java_websocket = 1.5.7
4545

46-
deps.kotlin = 2.2.21
46+
deps.kotlin = 2.3.0
4747

4848
# https://central.sonatype.com/artifact/com.squareup.okhttp3/okhttp/4.12.0/versions
4949
deps.okhttp = 5.3.1
@@ -55,10 +55,10 @@ deps.unitytranslatelib = 0.4.2
5555
deps.jnr = 2.2.17
5656

5757
# https://modrinth.com/mod/talk-balloons
58-
deps.talk_balloons = 1.4.0
58+
deps.talk_balloons = 1.4.1
5959

6060
# https://modrinth.com/mod/modernnetworking
61-
deps.modernnetworking = 1.2.5
61+
deps.modernnetworking = 1.2.6
6262
deps.modernnetworking_mc = [VERSIONED]
6363

6464
# https://modrinth.com/mod/cloth-config
@@ -73,7 +73,7 @@ deps.fabric_loader = 0.17.3
7373
deps.fabric_api = [VERSIONED]
7474

7575
# https://modrinth.com/mod/fabric-language-kotlin
76-
deps.fabric_kotlin = 1.13.7
76+
deps.fabric_kotlin = 1.13.8
7777

7878
# https://modrinth.com/mod/modmenu
7979
deps.modmenu = [VERSIONED]
@@ -87,7 +87,7 @@ deps.fabric_permissions = [VERSIONED]
8787
mod.mc_dep_forgelike = [VERSIONED]
8888

8989
# https://modrinth.com/mod/kotlin-lang-forge
90-
deps.kotlinlangforge = 2.10.6
90+
deps.kotlinlangforge = 2.11.1
9191
deps.kotlinlangforge_loader = [VERSIONED]
9292

9393

gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
3+
# blame ForgeGradle for using an RC
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-rc-1-bin.zip
45
networkTimeout=10000
56
validateDistributionUrl=true
67
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)