buildscript { repositories { jcenter() maven { url = "http://files.minecraftforge.net/maven" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' classpath "com.github.jengelman.gradle.plugins:shadow:1.2.3" } } apply plugin: 'net.minecraftforge.gradle.forge' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: "com.github.johnrengelman.shadow" version = "1.0" group = "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "seppuku-1.12.2" sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. compileJava { sourceCompatibility = targetCompatibility = '1.8' } minecraft { version = "1.12.2-14.23.5.2768" 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 always work. // simply re-run your setup task after changing the mappings to update your workspace. mappings = "snapshot_20171003" // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. } dependencies { compile files('lib/json-simple-1.1.1.jar') } jar { manifest { attributes 'FMLCorePlugin': 'me.rigamortis.seppuku.impl.fml.core.SeppukuLoadingPlugin' attributes 'FMLCorePluginContainsFMLMod': 'true' attributes 'FMLAT': 'seppuku_at.cfg' } } reobf { jar { mappingType = 'SEARGE' } shadowJar { //mappingType = 'NOTCH' mappingType = 'SEARGE' classpath = sourceSets.main.compileClasspath } } shadowJar { dependencies { include(dependency('org.json.simple:parser')) include(dependency('net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT')) } manifest { attributes 'FMLCorePlugin': 'me.rigamortis.seppuku.impl.fml.core.SeppukuLoadingPlugin' attributes 'FMLCorePluginContainsFMLMod': 'true' attributes 'FMLAT': 'seppuku_at.cfg' } exclude 'dummyThing' exclude 'LICENSE.txt' classifier = 'full' } task signJar(type: SignJar, dependsOn: reobfJar) { onlyIf { project.hasProperty('keyStore') } keyStore = project.findProperty('keyStore') alias = project.findProperty('keyStoreAlias') storePass = project.findProperty('keyStorePass') keyPass = project.findProperty('keyStoreKeyPass') inputFile = jar.archivePath outputFile = jar.archivePath } build.dependsOn {[ 'shadowJar', 'reobfShadowJar', 'signJar' ]} processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' // replace version and mcversion expand 'version':project.version, 'mcversion':project.minecraft.version } // copy everything else except the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } }