Update transformers to 5.2.80

This commit is contained in:
shedaniel
2023-11-16 23:42:35 +08:00
parent 2c00900be1
commit d56e09b281
3 changed files with 45 additions and 3 deletions

View File

@@ -5,5 +5,5 @@ loom_version_010Legacy=0.10.0.171
loom_version_010=0.10.0.188
loom_version_011=0.11.0.217
loom_version_11=1.1.313
transformer_version=5.2.79
transformer_version=5.2.80
base_version=3.4

View File

@@ -30,7 +30,7 @@ import java.util.jar.JarOutputStream
import java.util.jar.Manifest
open class ArchitectPluginExtension(val project: Project) {
var transformerVersion = "5.2.79"
var transformerVersion = "5.2.80"
var injectablesVersion = "1.0.10"
var minecraft = ""
private var compileOnly = false
@@ -126,6 +126,15 @@ open class ArchitectPluginExtension(val project: Project) {
writer.write(file.toPath(), pair.clazz, pair.properties)
}
}
if (transform.name == "neoforge") {
project.configurations.getByName("developmentForgeLike").forEach { file ->
(transform.transformers.map { it.apply(file.toPath()) } + ModLoader.applyNeoForgeForgeLikeDev(loom, transform))
.forEach { pair ->
writer.write(file.toPath(), pair.clazz, pair.properties)
}
}
}
}
}
@@ -150,9 +159,13 @@ open class ArchitectPluginExtension(val project: Project) {
fun transform(name: String, action: Action<Transform>) {
transforms.getOrPut(name) {
Transform(project, "development" + (if (name == "neoforge") "NeoForge" else name.capitalize())).also { transform ->
Transform(project, name, "development" + (if (name == "neoforge") "NeoForge" else name.capitalize())).also { transform ->
if (!compileOnly) {
project.configurations.maybeCreate(transform.devConfigName)
if (name == "neoforge") {
project.configurations.maybeCreate("developmentForgeLike")
}
}
action.execute(transform)
@@ -437,6 +450,21 @@ open class ArchitectPluginExtension(val project: Project) {
})
} as Jar
}
fun forgeLike(action: Action<CommonSettings>) {
common {
clear()
action.execute(this)
}
}
@JvmOverloads
fun forgeLike(platforms: Iterable<String>, action: CommonSettings.() -> Unit = {}) {
forgeLike {
it.add(platforms)
action(it)
}
}
}
private fun File.createEmptyJar() {
@@ -446,11 +474,17 @@ private fun File.createEmptyJar() {
data class Transform(
val project: Project,
val name: String,
val devConfigName: String,
val transformers: MutableList<Function<Path, TransformerPair>> = mutableListOf(),
var envAnnotationProvider: String = "net.fabricmc:fabric-loader:+",
var platformPackage: String? = null,
val extraForgeLikeToNeoForgeRemaps: MutableMap<String, String> = mutableMapOf(),
) {
fun remapForgeLike(remap: String, to: String) {
extraForgeLikeToNeoForgeRemaps[remap] = to
}
operator fun plusAssign(transformer: TransformerPair) {
transformers.add(Function { transformer })
}

View File

@@ -2,7 +2,9 @@ package dev.architectury.plugin
import dev.architectury.plugin.loom.LoomInterface
import dev.architectury.plugin.transformers.AddRefmapName
import dev.architectury.transformer.shadowed.impl.com.google.gson.Gson
import dev.architectury.transformer.transformers.*
import dev.architectury.transformer.util.TransformerPair
open class ModLoader(
val id: String,
@@ -134,6 +136,12 @@ open class ModLoader(
get() = "NeoForge"
}
fun applyNeoForgeForgeLikeDev(loom: LoomInterface, transform: Transform): List<TransformerPair> {
val properties = mutableMapOf<String, Any>()
properties[BuiltinProperties.NEOFORGE_LIKE_REMAPS] = transform.extraForgeLikeToNeoForgeRemaps
return listOf(TransformerPair(TransformForgeLikeToNeoForge::class.java, Gson().toJsonTree(properties).asJsonObject))
}
val QUILT = ModLoader(
id = "quilt",
transformDevelopment = {