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' id 'maven-publish' } 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" } } version = "${project.minecraft_version}.${project.version}" 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' ] } archivesBaseName = "mod-${project.name.toLowerCase()}" afterEvaluate { file('build.number').delete() } jar { from sourceSets.hdskins.output from litemod classifier 'base' extension 'jar' } task copyBGPones(type: Copy) { def illegals = /[^a-z0-9_\/.-]/ from "skins/Background Ponies" // TODO: What is tempDir???? into temporaryDir eachFile { if (it.name =~ illegals){ logger.warn("Sanitizing file with illegal characters: ${it.path}") it.name = it.name.replaceAll(/\s/, '_').replaceAll(illegals, '') } } } 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' doLast { file('build/libs/' + archivesBaseName + '-' + version + '-base.jar').delete(); } } task srgJar(type: Jar) { from sourceSets.main.output from sourceSets.hdskins.output from litemod classifier "mc$minecraft.version-srg" } reobf { srgJar { mappingType = 'SEARGE' } shadowJar{} } publishing { publications { maven(MavenPublication) { afterEvaluate { artifact(remapJar) } artifact(sourcesJar) { builtBy remapSourcesJar } pom { name = "MineLittlePony" description = "HD Skins support for Minecraft" url = "https://minelittlepony-mod.com" licenses { license { name = "MIT Public License" url = "https://tlo.mit.edu/learn-about-intellectual-property/software-and-open-source-licensing" } } developers { developer { id = "killjoy1221" name = "Matthew Messinger" email = "mattmess1221@gmail.com" } developer { id = "sollace" } } scm { connection = 'scm:git:git://github.com/MineLittlePony/MineLittlePony.git' developerConnection = 'scm:git:ssh://github.com/MineLittlePony/MineLittlePony.git' url = 'https://github.com/MineLittlePony/MineLittlePony' } } } } repositories { maven { name = "MineLittlePony" def mvn = 's3://repo.minelittlepony-mod.com/maven' url = release == 'SNAPSHOT' ? "$mvn/snapshot" : "$mvn/release" credentials(AwsCredentials) { accessKey = System.env.ACCESS_KEY secretKey = System.env.SECRET_KEY } } } }