buildscript { repositories { jcenter() maven { name 'forge' url 'http://files.minecraftforge.net/maven' } maven { name = 'sponge' url = 'https://repo.spongepowered.org/maven' } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT' classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' } } plugins { id 'org.ajoberstar.grgit' version '1.7.2' } apply plugin: 'net.minecraftforge.gradle.liteloader' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' ext { revision = grgit.log().size() hash = grgit.head().abbreviatedId if (file('.git/shallow').exists()) { // don't clone with --depth revision = -1 hash += " shallow" } } if (project.release != 'RELEASE') { version += "-${project.release}" } if (project.release == 'SNAPSHOT') { version += "-${project.revision}-${project.hash}" } group = project.group description = project.displayname minecraft { version = project.minecraft_version mappings = project.mappings_version runDir = 'run' replace '@VERSION@', project.version } mixin { defaultObfuscationEnv notch } targetCompatibility = 1.8 sourceCompatibility = 1.8 sourceSets { hdskins { compileClasspath += main.compileClasspath ext.refMap = 'hdskins.mixin.refmap.json' } main { compileClasspath += hdskins.output ext.refMap = 'minelp.mixin.refmap.json' } } dependencies { // use the same version as httpclient compile('org.apache.httpcomponents:httpmime:4.3.2') { transitive = false } compile('org.spongepowered:mixin:0.7.11-SNAPSHOT') { transitive = false } } manifest { attributes 'Implementation-Version': "${project.version} (git-${project.hash})" } litemod.json { mcversion = project.minecraft_version displayName = project.displayname author = project.authors revision = project.revision description = project.description description.minelittlepony = project.description_mlp description.hdskinsmod = project.description_hd mixinConfigs += [ 'minelp.mixin.json', 'hdskins.mixin.json' ] } afterEvaluate { file('build.number').delete() } jar { from sourceSets.hdskins.output from litemod classifier 'base' extension 'jar' } archivesBaseName = "mod-${project.name.toLowerCase()}" task copyBGPones(type: Copy) { delete "${buildDir}/skins/assets/minelittlepony/textures/entity/pony" def permittedChars = /[^0-9a-z\",\{\}\[\]\(\):\'\.\/ ]/ from("skins/Background Ponies") { exclude "bgponies.json" rename { filename -> filename.toLowerCase() .replaceAll(permittedChars, '') } } from("skins/Background Ponies") { include "bgponies.json" filter { line -> line.toLowerCase() .replaceAll('\t', ' ') .replaceAll(permittedChars, '') } } into "${buildDir}/skins/assets/minelittlepony/textures/entity/pony" } shadowJar { extension 'litemod' classifier "mc$minecraft.version" from sourceSets.hdskins.output from litemod exclude "/assets/minelittlepony/textures/entity/pony" from(copyBGPones) { into "/assets/minelittlepony/textures/entity/pony" } dependencies { exclude dependency('deobf.com.mumfrey:liteloader:') exclude dependency('deobf.org.ow2.asm:') exclude dependency('org.spongepowered:mixin:') exclude 'META-INF/**' } relocate 'org.apache.http.entity.mime', 'com.voxelmodpack.repack.org.apache.http.entity.mime' exclude 'dummyThing' } sourceJar { // add hdskins sources from sourceSets.hdskins.allSource } task srgJar(type: Jar) { from sourceSets.main.output from sourceSets.hdskins.output from litemod classifier "mc$minecraft.version-srg" } task zipCommunityPack(type: Zip) { baseName = "Pony Skin Pack" destinationDir = new File(buildDir, "libs") from("skins") { // TODO: Later packs will have their folders excluded. // For now we just zip everything. exclude "README.md" } } reobf { srgJar { mappingType = 'SEARGE' } shadowJar{} }