intermediary2srg will remap your built intermediary-jar to srg at build time. This can allow modders to target both Fabric and Forge with minimal code duplication.
Note: Mixin remapping is not (yet?) supported
When applied, a task will run on build that will create a jar containing srg
names. It will have the srg classifier. You can customize this in the
remapSrgJar block.
To use, add the plugin to your root project's buildscript block, then apply the plugin after loom. I suggest using a common project that doesn't use fabric.
buildscript {
repositories {
mavenLocal()
jcenter()
mavenCentral()
maven {
name = "MineLittlePony"
url = "https://repo.minelittlepony-mod.com/maven/snapshot"
}
maven {
name = "Fabric"
url = "https://maven.fabricmc.net/"
}
}
dependencies {
classpath "net.fabricmc:fabric-loom:0.2.7-SNAPSHOT"
classpath "com.minelittlepony:intermediary2srg:0.1-SNAPSHOT"
}
}
apply plugin: 'java-library'
apply plugin: 'fabric-loom'
apply plugin: 'intermediary2srg'If you're using subprojects, you can put them all in a plugins block.
plugins {
id 'java-library'
id 'fabric-loom'
id 'intermediary2srg'
}The only thing that needs to be configured is what mappings to use. These can be set via dependencies.
For example, this is the minimal required configuration for 1.15.2
plugins {
id 'java-library'
id 'fabric-loom'
id 'intermediary2srg'
}
repositories {
maven {
name = "Forge"
url = "https://files.minecraftforge.net/maven"
}
}
dependencies {
// required for loom
minecraft "com.mojang:minecraft:1.15.2"
mappings "net.fabricmc:yarn:1.15.2+build.9:v2"
// required for intermediary2srg
intermediary "net.fabricmc:intermediary:1.15.2:v2"
mcpconfig "de.oceanlabs.mcp:mcp_config:1.15.2@zip"
}Additionally, the remapSrgJar task inherits from Jar, so the output jar can
be customized the same way as other jars tasks. The input jar can be changed by
setting the jarTask property. It should be an instance of RemapJarTask.
remapSrgJar {
archiveClassifier = "" // Set to default
archiveVersion = "1.0-forge"
}