buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } 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.50" id "com.github.johnrengelman.shadow" version "4.0.4" } apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: 'maven-publish' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'kotlin' version = '0.1.14' group = 'thedarkcolour.kotlinforforge' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'kotlinforforge' sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' tasks.build.dependsOn kotlinSourcesJar tasks.build.dependsOn shadowJar minecraft { mappings channel: 'snapshot', version: '20191019-1.14.3' runs { client { workingDirectory project.file('run') // Recommended logging data for a userdev environment property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' // Recommended logging level for the console property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } server { workingDirectory project.file('run') // Recommended logging data for a userdev environment property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' // Recommended logging level for the console property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } data { workingDirectory project.file('run') // Recommended logging data for a userdev environment property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' // Recommended logging level for the console property 'forge.logging.console.level', 'debug' args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/') mods { examplemod { source sourceSets.main } } } } } repositories { } dependencies { minecraft 'net.minecraftforge:forge:1.14.4-28.1.74' 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 } 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}")) } } // Example configuration to allow publishing using the maven-publish task // we define a custom artifact that is sourced from the reobfJar output task // and then declare that to be published // Note you'll need to add a repository hereI def reobfFile = file("$buildDir/reobfJar/output.jar") def reobfArtifact = artifacts.add('default', reobfFile) { type 'jar' builtBy 'reobfJar' } publishing { publications { mavenJava(MavenPublication) { artifact reobfArtifact } } repositories { maven { url "file:///${project.projectDir}/mcmodsrepo" } } }