buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } maven { url = "https://maven.tterrag.com/" } jcenter() mavenCentral() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}" } } plugins { id "org.jetbrains.kotlin.jvm" version "1.3.70" id "com.github.johnrengelman.shadow" version "4.0.4" } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'kotlin' version = '1.1.0' group = 'thedarkcolour.kotlinforforge' archivesBaseName = 'kotlinforforge' sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' tasks.build.dependsOn kotlinSourcesJar tasks.build.dependsOn shadowJar minecraft { mappings channel: 'snapshot', version: '20200213-mixed-1.15.2' runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' } server { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' } data { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/') } } } repositories { maven { name = "Yarn Mappings" url = "https://maven.tterrag.com/" } } dependencies { minecraft 'net.minecraftforge:forge:1.15.2-31.1.14' compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib", version: kotlin_version compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk7", version: kotlin_version compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk8", version: kotlin_version compile group: "org.jetbrains.kotlin", name: "kotlin-reflect", version: kotlin_version compile group: "org.jetbrains", name: "annotations", version: annotations_version compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-core", version: coroutines_version compile group: "org.jetbrains.kotlinx", name: "kotlinx-coroutines-jdk8", version: coroutines_version // Used to generate html files compile group: 'org.jsoup', name: 'jsoup', version: '1.11.3' } shadowJar { classifier = "obf" dependencies { include(dependency("org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}")) include(dependency("org.jetbrains.kotlin:kotlin-stdlib-jdk7:${kotlin_version}")) include(dependency("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}")) include(dependency("org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}")) include(dependency("org.jetbrains:annotations:${annotations_version}")) include(dependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:${coroutines_version}")) include(dependency("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:${coroutines_version}")) } } jar { manifest { attributes([ "FMLModType": "LANGPROVIDER" ]) attributes([ "Specification-Title": "Mod Language Provider", "Specification-Vendor": "Forge", "Specification-Version": "1", "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"thedarkcolour", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ], "thedarkcolour/kotlinforforge/") } } compileKotlin { kotlinOptions { freeCompilerArgs = ["-Xinline-classes"] jvmTarget = '1.8' } // Required to run in dev environment copy { from "$buildDir/classes/kotlin/main" into "$buildDir/classes/java/main" } }