Skip to content

Instantly share code, notes, and snippets.

@Barteks2x
Created November 20, 2016 14:33
Show Gist options
  • Save Barteks2x/168d4cf4757847e3a53f0832aa2901f3 to your computer and use it in GitHub Desktop.
Save Barteks2x/168d4cf4757847e3a53f0832aa2901f3 to your computer and use it in GitHub Desktop.
Forge MDK buildscript in kotlin for gradle 3.2 (using forge 1.11-13.19.0.2153)
import net.minecraftforge.gradle.user.patcherUser.forge.ForgeExtension
import net.minecraftforge.gradle.user.patcherUser.forge.ForgePlugin
import org.gradle.api.JavaVersion
import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.language.jvm.tasks.ProcessResources
import org.gradle.script.lang.kotlin.*
// Gradle repositories and dependencies
buildscript {
repositories {
jcenter()
maven {
setUrl("http://files.minecraftforge.net/maven")
}
}
dependencies {
classpath("net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT")
}
}
apply {
plugin<ForgePlugin>()
//Only edit below this line, the above code adds and enables the nessasary things for Forge to be setup.
}
version = "1.0"
group = "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
project.setProperty("archivesBaseName", "modid")
val sourceSets = the<JavaPluginConvention>().sourceSets
val minecraft = extensions.getByType(ForgeExtension::class.java)
configure<JavaPluginConvention> {
setSourceCompatibility(JavaVersion.VERSION_1_6)
setTargetCompatibility(JavaVersion.VERSION_1_6)
}
configure<ForgeExtension> {
version = "1.11-13.19.0.2153"
runDir = "run"
// the mappings can be changed at any time, and must be in the following format.
// snapshot_YYYYMMDD snapshot are built nightly.
// stable_# stables are built at the discretion of the MCP team.
// Use non-default mappings at your own risk. they may not allways work.
// simply re-run your setup task after changing the mappings to update your workspace.
mappings = "snapshot_20161111"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
}
dependencies {
// you may put jars on which you depend on in ./libs
// or you may define them like so..
//compile("some.group:artifact:version:classifier")
//compile("some.group:artifact:version")
// real examples
//compile("com.mod-buildcraft:buildcraft:6.0.8:dev") // adds buildcraft to the dev env
compile("com.googlecode.efficient-java-matrix-library:ejml:0.24") // adds ejml to the dev env
// required for configurations below, can be anywhere above them
//val provided = configurations.getByName("provided")
//val deobfCompile = configurations.getByName("deobfCompile")
//val deobfProvided = configurations.getByName("deobfProvided")
// the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime.
//provided("com.mod-buildcraft:buildcraft:6.0.8:dev")
// the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided,
// except that these dependencies get remapped to your current MCP mappings
//deobfCompile("com.mod-buildcraft:buildcraft:6.0.8:dev")
//deobfProvided("com.mod-buildcraft:buildcraft:6.0.8:dev")
// for more info... (note: these links are not yet updated to use kotlin)
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
}
val processResources = tasks.getByName("processResources") as ProcessResources
processResources.apply {
// this will ensure that this task is redone when the versions change.
inputs.property("version", project.version)
inputs.property("mcversion", minecraft.version)
// replace stuff in mcmod.info, nothing else
from(sourceSets.getByName("main").resources.srcDirs) {
include("mcmod.info")
// replace version and mcversion
expand(mapOf("version" to project.version, "mcversion" to minecraft.version))
}
// copy everything else, thats not the mcmod.info
from(sourceSets.getByName("main").resources.srcDirs) {
exclude("mcmod.info")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment