plugins { id 'idea' id 'maven-publish' id 'net.neoforged.gradle' version '[6.0.18,6.2)' id 'org.spongepowered.mixin' } base { archivesName = "${mod_name}-forge-${minecraft_version}" } mixin { add(sourceSets.main, "${mod_id}.refmap.json") config("${mod_id}.mixins.json") config("${mod_id}.forge.mixins.json") } minecraft { mappings channel: 'official', version: minecraft_version // Automatically enable forge AccessTransformers if the file exists // This location is hardcoded in Forge and can not be changed. // https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123 if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) { accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') } runs { client { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" taskName 'Client' property 'mixin.env.remapRefMap', 'true' property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" mods { modClientRun { source sourceSets.main source project(":common").sourceSets.main } } } server { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" taskName 'Server' property 'mixin.env.remapRefMap', 'true' property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" mods { modServerRun { source sourceSets.main source project(":common").sourceSets.main } } } data { workingDirectory project.file('run') ideaModule "${rootProject.name}.${project.name}.main" args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') taskName 'Data' property 'mixin.env.remapRefMap', 'true' property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" mods { modDataRun { source sourceSets.main source project(":common").sourceSets.main } } } } } sourceSets.main.resources.srcDir 'src/generated/resources' dependencies { minecraft "net.neoforged:forge:${minecraft_version}-${neoforged_version}" compileOnly project(":common") annotationProcessor("org.spongepowered:mixin:0.8.5-SNAPSHOT:processor") } tasks.withType(JavaCompile).configureEach { source(project(":common").sourceSets.main.allSource) } tasks.withType(Javadoc).configureEach { source(project(":common").sourceSets.main.allJava) } tasks.named("sourcesJar", Jar) { from(project(":common").sourceSets.main.allSource) } processResources { from project(":common").sourceSets.main.resources } jar.finalizedBy('reobfJar') publishing { publications { mavenJava(MavenPublication) { artifactId base.archivesName.get() from components.java fg.component(it) } } repositories { maven { url "file://" + System.getenv("local_maven") } } }