From 33e5c54e8ae16d7d8815e67973ab43c88ae69dbd Mon Sep 17 00:00:00 2001 From: Hea3veN Date: Mon, 16 Jan 2017 21:07:29 -0300 Subject: [PATCH] Switch to the h3nt gradle plugins --- build.gradle | 27 ++++ gradle.properties | 16 +- mcbuild.gradle | 149 ++++-------------- .../core/ModBuildingBricks.java | 4 +- src/main/resources/mcmod.info | 2 +- 5 files changed, 67 insertions(+), 131 deletions(-) diff --git a/build.gradle b/build.gradle index 54526fa..61da20a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,12 @@ buildscript { repositories { + mavenLocal() + mavenCentral() jcenter() + maven { + name = "Hea3veN" + url = "https://raw.github.com/hea3ven/mvn-repo/master" + } maven { name = "forge" url = "http://files.minecraftforge.net/maven" @@ -11,6 +17,9 @@ buildscript { } } dependencies { + classpath 'com.hea3ven.tools.gradle.bootstrap:h3nt-gradle-bootstrap:1.0.0' + classpath 'com.hea3ven.tools.gradle.automc:h3nt-gradle-automc:1.0.0' + classpath 'com.hea3ven.tools.gradle.grlog:h3nt-gradle-grlog:1.0.0' classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' classpath 'com.matthewprenger:CurseGradle:1.0-SNAPSHOT' classpath 'org.ajoberstar:grgit:1.4.1' @@ -22,12 +31,19 @@ plugins { } apply plugin: 'net.minecraftforge.gradle.forge' +apply plugin: 'com.hea3ven.tools.gradle.bootstrap' +apply plugin: 'com.hea3ven.tools.gradle.automc' +apply plugin: 'com.hea3ven.tools.gradle.grlog' apply plugin: 'com.matthewprenger.cursegradle' apply from: 'mcbuild.gradle' import groovy.io.FileType repositories { + maven { + name = "Hea3veN" + url = "https://raw.github.com/hea3ven/mvn-repo/master" + } maven { url "http://dvs1.progwml6.com/files/maven" } @@ -49,6 +65,17 @@ dependencies { testCompile "junit:junit:4.12" } +bootstrap { + file 'assets/BuildingBricks/bootstrap.json' +} + +// changelog { + // plainTextChangelog { + // file "CHANGELOG" + // lineFormat " %s." + // } +// } + task updateCommonCode << { updateCommonCodeFrom("base/BlockBuildingBricksBase.java", "COMMON BLOCK CODE") updateCommonCodeFrom("BlockMaterialBlock.java", "COMMON TILE CODE") diff --git a/gradle.properties b/gradle.properties index 96bd2a6..a2bc369 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ project_group=com.hea3ven.buildingbricks project_name=BuildingBricks project_display_name=Building Bricks project_version=2.0.13 -project_class=com.hea3ven.buildingbricks.core.ModBuildingBricks +# project_class=com.hea3ven.buildingbricks.core.ModBuildingBricks project_repo=hea3ven/BuildingBricks project_repo_branch=master project_curseforge_id=236150 @@ -10,18 +10,18 @@ project_curseforge_name_id=building-bricks project_curseforge_type=release project_update_file=media/update.json project_changelog_file=CHANGELOG -project_bootstrap_file=assets/buildingbricks/bootstrap.json -project_coremod=com.hea3ven.buildingbricks.core.load.LoadingPluginBuildingBricks +# project_bootstrap_file=assets/buildingbricks/bootstrap.json +# project_coremod=com.hea3ven.buildingbricks.core.load.LoadingPluginBuildingBricks version_mc=1.10.2 -version_forge=12.18.1.2011 +version_forge=12.18.3.2209 #version_forge_branch=1.10.0 version_mappings=snapshot_20160716 -version_h3nt_mappings=1.1.1 -version_h3nt_mappings_pattern=1.1.x -version_asmtweaks=1.1.1 -version_asmtweaks_pattern=1.1.x +version_h3nt_mappings=1.2.0 +version_h3nt_mappings_pattern=1.2.x +version_asmtweaks=1.2.0 +version_asmtweaks_pattern=1.2.x version_commonutils=1.9.4-2.2.2 version_commonutils_pattern=1.9.4-2.2.x version_jei=3.6.7.216 diff --git a/mcbuild.gradle b/mcbuild.gradle index bf7e864..bea91ad 100644 --- a/mcbuild.gradle +++ b/mcbuild.gradle @@ -1,6 +1,4 @@ // Hea3veN's build script for minecraft mods -// v1.0.9 (2016-07-25): -// * Disable the up-to-date check of processResources // v1.0.9 (2016-06-24): // * Improve the sorting // v1.0.8 (2016-06-12): @@ -34,8 +32,6 @@ buildscript { } } -apply plugin: McBuildPlugin - import groovy.json.JsonBuilder import groovy.json.JsonSlurper import org.ajoberstar.grgit.Grgit @@ -43,32 +39,6 @@ import org.apache.http.client.methods.HttpPost import org.apache.http.entity.StringEntity import org.apache.http.impl.client.HttpClientBuilder -version = "${version_mc}-${project_version}" -group = "${project_group}" -archivesBaseName = "${project_name}" - -sourceCompatibility = 1.8 -targetCompatibility = 1.8 - -minecraft { - version = "${version_mc}-${version_forge}" + (project.hasProperty('version_forge_branch')? '-' + version_forge_branch : '') - mappings = version_mappings - runDir = 'run' - - if (project.hasProperty('project_coremod')) { - coreMod = project_coremod - } - - def project_class_path = project_class.replace('.', '/') - replaceIn "src/main/java/${project_class_path}.java" - replace 'PROJECTVERSION', project.version - replace 'MCVERSION', project.minecraft.version - replace 'FORGEVERSION', version_forge -} - -if (project.hasProperty('project_coremod')) { - jar.manifest.attributes.put('FMLCorePluginContainsFMLMod', 'true') -} if (project.hasProperty('project_curseforge_id')) { curseforge { @@ -85,80 +55,22 @@ if (project.hasProperty('project_curseforge_id')) { } } -repositories { - mavenLocal() - maven { - url "https://raw.github.com/hea3ven/mvn-repo/master" - } -// maven { -// name "JEI" -// url "http://dvs1.progwml6.com/files/maven" -// } -} - -configurations { - runmods -} - -dependencies { -// deobfCompile "mezz.jei:jei_1.8.9:2.24.0.109" -} - processResources { from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' - include project_bootstrap_file + include 'src/main/resources/buildingbricks/bootstrap.java' expand project.properties expand 'version': project.version, 'mcversion': project.minecraft.version } from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' - exclude project_bootstrap_file + exclude 'src/main/resources/buildingbricks/bootstrap.java' } outputs.upToDateWhen { false } } -class McBuildPlugin implements Plugin { - void apply(Project project) { - project.configurations.create('release') - project.configurations.release.transitive = false - } -} - -if (project.hasProperty('project_bootstrap_file')) { - - sourceSets.main.java.srcDirs += 'src/bootstrap/java' - - jar { - manifest { - attributes("H3NTBootstrap": project_bootstrap_file) - } - into('libs') { - from configurations.release - } - } -} - -task copyRunMods(type: Copy) { - from configurations.runmods.files - into minecraft.runDir + "/mods/" -} -setupDecompWorkspace.dependsOn copyRunMods - -if (tasks.findByPath('compileKotlin') != null) { - task updateMainKotlinFile << { - def mainFile = new File('src/main/java/' + project_class.replace('.', '/') + '.kt') - if (mainFile.exists()) { - def content = mainFile.text. - replaceAll(/val VERSION = "[^"]*"/, 'val VERSION = "' + project.version + '"'). - replaceAll(/Forge@\[[^,]*,\)/, "Forge@[$version_forge,)") - mainFile.withWriter { w -> w << content } - } - } - compileKotlin.dependsOn updateMainKotlinFile -} task updateChangelog << { UpdateFile updateFile = UpdateFile.load(new File(projectDir, project_update_file)) @@ -227,28 +139,27 @@ class UpdateFile { def save(File file) { def data = [:] data.put('homepage', homepage) - promotions = promotions.sort { lhs, rhs -> sortVersions(lhs.key, rhs.key) } + promotions = promotions.sort { k1, k2 -> compareVersions(k1.key, k2.key) } data.put('promos', promotions) - versions = versions.sort { lhs, rhs -> sortVersions(lhs.key, rhs.key) } + versions = versions.sort { k1, k2 -> compareVersions(k1.key, k2.key) } versions.each { mcVersion, v -> data[mcVersion] = [:] data[mcVersion]['commit'] = commits[mcVersion] v.each { version, changelog -> data[mcVersion][version] = changelog.save() } - data[mcVersion] = data[mcVersion].sort { lhs, rhs -> sortVersions(lhs.key, rhs.key) } + data[mcVersion] = data[mcVersion].sort { k1, k2 -> compareVersions(k1.key, k2.key) } } - data = data.sort { lhs, rhs -> sortVersions(lhs.key, rhs.key) } + data = data.sort { k1, k2 -> compareVersions(k1.key, k2.key) } file.setText(new JsonBuilder(data).toPrettyString()) } def saveChangelog(File file) { def changelogText = '' - versions.sort { lhs, rhs -> sortVersions(lhs.key, rhs.key) }.collect { it.value }.reverseEach { + versions.sort { k1, k2 -> compareVersions(k1.key, k2.key) }.collect { it.value }.reverseEach { def sortedChangelogs = [:] it.sort { - lhs, rhs -> sortVersions(lhs.key + ((!lhs.key.contains('-beta') && !lhs.key.contains('-alpha')) ? '-release' : ''), - rhs.key + ((!rhs.key.contains('-beta') && !rhs.key.contains('-alpha')) ? '-release' : '')) + it.key + ((!it.key.contains('-beta') && !it.key.contains('-alpha')) ? '-release' : '') }.reverseEach { sortedChangelogs[it.key] = it.value } sortedChangelogs.each { version, changelog -> changelogText += version + ':\n' + changelog.save() + '\n\n' @@ -257,32 +168,30 @@ class UpdateFile { file.setText(changelogText) } - def sortVersions(String lhs, String rhs) { + def compareVersions(String v1, String v2) { + String[] parts1 = v1.split(/[.-]/) + String[] parts2 = v2.split(/[.-]/) def i = 0 - - while (i < lhs.size() && i < rhs.size()) { - if (!lhs.charAt(i).isDigit() || !rhs.charAt(i).isDigit()) { - if (lhs.charAt(i) != rhs.charAt(i)) - return lhs[i] <=> rhs[i] - i++ - continue - } - def endL = i + 1 - while (endL < lhs.size() && lhs.charAt(endL).isDigit()) - endL++ - def endR = i + 1 - while (endR < rhs.size() && rhs.charAt(endR).isDigit()) - endR++ - - def numL = lhs.substring(i, endL) as Integer - def numR = rhs.substring(i, endR) as Integer - if (numL == numR) { - i = endL - continue + while (parts1.length > i && parts2.length > i) { + if (parts1[i].isInteger() && parts2[i].isInteger()) { + def cmp = parts1[i] as int <=> parts2[i] as int + if (cmp != 0) + return cmp + } else { + if (i > 0 && parts1[i].isInteger()) + return 1 + else if (i > 0 && parts2[i].isInteger()) + return -1 + else + return parts1[i] <=> parts2[i] } - return numL <=> numR + i++ } - return lhs <=> rhs + if (parts1.length > parts2.length) + return 1 + if (parts1.length < parts2.length) + return -1 + return 0 } } diff --git a/src/main/java/com/hea3ven/buildingbricks/core/ModBuildingBricks.java b/src/main/java/com/hea3ven/buildingbricks/core/ModBuildingBricks.java index dd9274a..2f0abd6 100644 --- a/src/main/java/com/hea3ven/buildingbricks/core/ModBuildingBricks.java +++ b/src/main/java/com/hea3ven/buildingbricks/core/ModBuildingBricks.java @@ -32,8 +32,8 @@ public class ModBuildingBricks { public static final String MODID = "buildingbricks"; - public static final String VERSION = "PROJECTVERSION"; - public static final String DEPENDENCIES = "required-after:Forge@[FORGEVERSION,);after:Quark;after:BiomesOPlenty;after:adobeblocks"; + public static final String VERSION = "@PROJECTVERSION@"; + public static final String DEPENDENCIES = "after:Quark;after:BiomesOPlenty;after:adobeblocks"; public static final Logger logger = LogManager.getLogger("BuildingBricks"); diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index c20ec01..90b93a7 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "buildingbricks", "name": "Building Bricks", "description": "A mod about building blocks and building tools.", - "version": "${version}", + "version": "${project_version}", "mcversion": "${version_mc}", "url": "https://github.com/hea3ven/BuildingBricks", "updateUrl": "",