buildscript { ext.kotlin_version = '1.6.21' repositories { maven { url = 'https://maven.minecraftforge.net' } mavenCentral() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'java' apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' archivesBaseName = "${modID}-forge-${minecraftVersion}" // Adds the Kotlin Gradle plugin buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10" // OPTIONAL Kotlin Serialization plugin classpath 'org.jetbrains.kotlin:kotlin-serialization:1.6.10' } } apply plugin: 'kotlin' // OPTIONAL Kotlin Serialization plugin apply plugin: 'kotlinx-serialization' // Adds KFF as dependency and Kotlin libs to the runtime classpath // If you already know how to add the Kotlin plugin to Gradle, this is the only line you need for KFF apply from: 'https://raw.githubusercontent.com/thedarkcolour/KotlinForForge/site/thedarkcolour/kotlinforforge/gradle/kff-3.0.0.gradle' minecraft { mappings channel: 'official', version: minecraftVersion if (project.hasProperty('forge_ats_enabled') && project.findProperty('forge_ats_enabled').toBoolean()) { // 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 accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') project.logger.debug('Forge Access Transformers are enabled for this project.') } 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', modID, '--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' repositories { mavenCentral() // Put repositories for dependencies here // ForgeGradle automatically adds the Forge maven and Maven Central for you // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: // flatDir { // dir 'libs' // } maven { url 'https://maven.blamejared.com' } maven { // location of the maven that hosts JEI files name = "Progwml6 maven" url = "https://dvs1.progwml6.com/files/maven/" } maven { // location of a maven mirror for JEI files, as a fallback name = "ModMaven" url = "https://modmaven.dev" } } dependencies { implementation 'org.testng:testng:7.1.0' // Specify the version of Minecraft to use. If this is any group other than 'net.minecraft', it is assumed // that the dep is a ForgeGradle 'patcher' dependency, and its patches will be applied. // The userdev artifact is a special name and will get all sorts of transformations applied to it. minecraft "net.minecraftforge:forge:${minecraftVersion}-${forgeVersion}" annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' compileOnly fg.deobf("at.petra-k.paucal:paucal-$minecraftVersion:$paucalVersion") runtimeOnly fg.deobf("at.petra-k.paucal:paucal-$minecraftVersion:$paucalVersion") compileOnly fg.deobf("vazkii.patchouli:Patchouli:$minecraftVersion-$patchouliVersion:api") runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:$minecraftVersion-$patchouliVersion") compileOnly fg.deobf("mezz.jei:jei-$minecraftVersion:$jeiVersion:api") runtimeOnly fg.deobf("mezz.jei:jei-$minecraftVersion:$jeiVersion") } tasks.withType(JavaCompile) { source(project(":Common").sourceSets.main.allSource) } processResources { from project(":Common").sourceSets.main.resources } jar.finalizedBy('reobfJar') publishing { publications { mavenJava(MavenPublication) { groupId project.group artifactId project.archivesBaseName version project.version artifact jar } } repositories { maven { url "file://" + System.getenv("local_maven") } } } compileKotlin { kotlinOptions { } } compileTestKotlin { kotlinOptions { } }