// For those who want the bleeding edge buildscript { repositories { jcenter() maven { name = "forge" url = "https://maven.minecraftforge.net/" } maven { name = "jitpack" url = "https://jitpack.io/" } } dependencies { classpath "com.github.asbyth:ForgeGradle:6f53277" } } apply plugin: 'net.minecraftforge.gradle.forge' /* // for people who want stable - not yet functional for MC 1.8.8 - we require the forgegradle 2.1 snapshot plugins { id "net.minecraftforge.gradle.forge" version "2.0.2" } */ version = "${mc_version}-${mod_version}" group = project.group_package // http://maven.apache.org/guides/mini/guide-naming-conventions.html def mod_name_no_spaces = project.mod_name.replace(" ", "") def mod_id = mod_name_no_spaces.toLowerCase() archivesBaseName = mod_name_no_spaces sourceCompatibility = 1.8 targetCompatibility = 1.8 compileJava.options.encoding = 'UTF-8' minecraft { version = "${mc_version}-${forge_version}" runDir = "run" replace "@VERSION@": project.version, "@MODNAME@": project.mod_name, "@MODID@": mod_id, "@PACKAGE@": project.group_package, "@GITURL@": project.git_url replaceIn "${mod_name_no_spaces}.java" // 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 always work. // simply re-run your setup task after changing the mappings to update your workspace. mappings = project.mappings_version // 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 // 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... // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version inputs.property "modname", project.mod_name inputs.property "modid", mod_id inputs.property "giturl", project.git_url // replace stuff in mcmod.info, but nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' // replace version, mcversion, modname, modid and giturl expand 'version': project.version, 'mcversion': project.minecraft.version, 'modname': project.mod_name, 'modid': mod_id, 'giturl': project.git_url } // copy everything else, that's not the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } } task moveResources { doLast { ant.move file: "${buildDir}/resources/main", todir: "${buildDir}/classes/java" } } moveResources.dependsOn processResources classes.dependsOn moveResources import org.apache.tools.ant.filters.FixCrLfFilter // update versions in update.json copy { from file('update_template.json') into projectDir rename { 'update.json' } expand(mcversion: project.minecraft.version, version: project.version, giturl: project.git_url) filter(FixCrLfFilter) }