buildscript { repositories { maven { url = "https://plugins.gradle.org/m2/" } maven { url = 'https://files.minecraftforge.net/maven' } mavenCentral() } dependencies { classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.4' classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' classpath 'com.wynprice.cursemaven:CurseMaven:2.1.1' } } apply plugin: net.minecraftforge.gradle.user.patcherUser.forge.ForgePlugin apply plugin: com.wynprice.cursemaven.CurseMavenPlugin apply plugin: com.github.jengelman.gradle.plugins.shadow.ShadowPlugin apply plugin: 'eclipse' version = "${project.mc_version}-${project.mod_version}" group = "${project.maven_group}" archivesBaseName = "${project.mod_id}" def at_name = project.hasProperty('at_name') ? "${project.at_name}" : "" sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } repositories { flatDir { dirs 'libs' } maven { name = "itsmeow maven" url = "https://maven.itsmeow.dev/" } } minecraft { version = "${project.mc_version}-${project.forge_version}" runDir = "run" mappings = "${project.mcp_mappings}" replace "@VERSION@", "${project.mod_version}" makeObfSourceJar = true } jar { manifest { mainAttributes( "Maven-Artifact": "${project.maven_group}:${project.archivesBaseName}:${project.version}", "Specification-Title": archivesBaseName, "Specification-Vendor": "its_meow", "Specification-Version": "1", "Implementation-Title": archivesBaseName, "Implementation-Version": "${project.mod_version}", "Implementation-Vendor": "its_meow", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "Built-On-Java": "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", "Built-On": "${project.mc_version}-${project.forge_version}" ) } if(!"".equals(at_name)) { manifest.mainAttributes("FMLAT": at_name) } } sourceJar { manifest { mainAttributes( "Maven-Artifact": "${project.maven_group}:${project.archivesBaseName}:${project.version}", "Specification-Title": archivesBaseName, "Specification-Vendor": "its_meow", "Specification-Version": "1", "Implementation-Title": archivesBaseName + '-sources', "Implementation-Version": "${project.mod_version}", "Implementation-Vendor": "its_meow", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "Built-On-Java": "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", "Built-On": "${project.mc_version}-${project.forge_version}", ) } } apply from: 'https://maven.itsmeow.dev/scripts/alphas.gradle' apply from: 'https://maven.itsmeow.dev/scripts/maven.gradle' import groovy.json.JsonSlurper import groovy.json.JsonOutput processResources { doLast { def jsonMinifyStart = System.currentTimeMillis() def jsonMinified = 0 def jsonBytesSaved = 0 fileTree(dir: outputs.files.asPath, include: '**/*.json').each { File file = it jsonMinified++ def oldLength = file.length() file.text = JsonOutput.toJson(new JsonSlurper().parse(file)) jsonBytesSaved += oldLength - file.length() } println('Minified ' + jsonMinified + ' json files. Saved ' + jsonBytesSaved + ' bytes. Took ' + (System.currentTimeMillis() - jsonMinifyStart) + 'ms.') } inputs.property "version", "${project.mod_version}" inputs.property "mcversion", project.minecraft.version from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' expand 'version':project.version, 'mcversion':project.minecraft.version } from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } }