Skip to content

Commit 7a282fc

Browse files
committed
Fix Gander Access Transformers not being applied, closes #610 (again)
1 parent a05d080 commit 7a282fc

File tree

2 files changed

+50
-3
lines changed

2 files changed

+50
-3
lines changed

neoforge-main/build.gradle.kts

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ neoForge {
8787

8888
// JetBrains Runtime Hotswap
8989
if (!System.getenv().containsKey("CI")) {
90-
jvmArgument("-XX:+AllowEnhancedClassRedefinition")
90+
jvmArgument("-XX:+AllowEnhancedClassRedefinition")
9191
}
9292

9393
systemProperties.put("terminal.ansi", "true")
@@ -96,7 +96,7 @@ neoForge {
9696
additional.dependencies.add(compactmods.feather.get())
9797
additional.dependencies.add(libs.jnanoid.get())
9898
}
99-
99+
100100
create("client") {
101101
client()
102102
gameDirectory.set(file("runs/client"))
@@ -249,6 +249,48 @@ dependencies {
249249
compileOnly(mods.jade)
250250
}
251251

252+
var additionalAccessTransformerFiles = mutableListOf<File>()
253+
fun additionalAccessTransformersToModsToml(): String {
254+
val sb = StringBuilder()
255+
additionalAccessTransformerFiles.forEach {
256+
sb.appendLine("[[accessTransformers]]");
257+
sb.appendLine("file = \"META-INF/additional-ats/${it.name}\"")
258+
sb.appendLine()
259+
}
260+
261+
var t = sb.toString();
262+
return t.substring(0, t.lastIndexOf("\n"));
263+
}
264+
265+
var calculateAdditionalAccessTransformerFiles = tasks.create<Task>("calculateAdditionalAccessTransformerFiles") {
266+
var included = listOf(compactmods.ganderRendering.get())
267+
.map { it.group + ":" + it.name }
268+
269+
val t1 = configurations.accessTransformers.get()
270+
var t2 = t1.resolvedConfiguration.resolvedArtifacts
271+
.filter { f -> included.contains(f.moduleVersion.id.module.toString()) }
272+
273+
t2.forEach {
274+
println("Including: ${it.moduleVersion.id.module} (version: ${it.moduleVersion.id.version})")
275+
println(it.file.absoluteFile)
276+
additionalAccessTransformerFiles.add(it.file.absoluteFile)
277+
}
278+
}
279+
280+
val copyAdditionalAccessTransformers = tasks.create<Copy>("copyAdditionalAccessTransformers") {
281+
dependsOn(calculateAdditionalAccessTransformerFiles)
282+
283+
val targetDir = layout.buildDirectory.get().dir("resources/main/META-INF/additional-ats")
284+
285+
doLast { println("Copying additional AT files to: $targetDir") }
286+
from(additionalAccessTransformerFiles.map { it.absoluteFile })
287+
into(targetDir)
288+
}
289+
290+
tasks.build {
291+
finalizedBy(copyAdditionalAccessTransformers)
292+
}
293+
252294
tasks.withType<Test> {
253295
useJUnitPlatform()
254296
}
@@ -285,14 +327,18 @@ tasks.withType<Jar> {
285327
}
286328

287329
tasks.withType<ProcessResources>().configureEach {
330+
dependsOn(calculateAdditionalAccessTransformerFiles)
331+
332+
val additionalATs = additionalAccessTransformersToModsToml()
288333
val replaceProperties: Map<String, Any> = mapOf(
289334
"minecraft_version" to mojang.versions.minecraft.get(),
290335
"neo_version" to neoforged.versions.neoforge.get(),
291336
"minecraft_version_range" to mojang.versions.minecraftRange.get(),
292337
"neo_version_range" to neoforged.versions.neoforgeRange.get(),
293338
"loader_version_range" to "[1,)",
294339
"mod_id" to modId,
295-
"mod_version" to envVersion
340+
"mod_version" to envVersion,
341+
"additional_access_transformers" to additionalATs
296342
)
297343

298344
inputs.properties(replaceProperties)

neoforge-main/src/main/resources/META-INF/neoforge.mods.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ modLoader = "javafml" #mandatory
22
loaderVersion = "${loader_version_range}"
33
license = "MIT"
44

5+
${additional_access_transformers}
56
[[accessTransformers]]
67
file = "META-INF/accesstransformer.cfg"
78

0 commit comments

Comments
 (0)