From d857ebb3b7031a0cfcc3dda216317341aeadebe2 Mon Sep 17 00:00:00 2001 From: tterrag Date: Sun, 7 Jun 2020 20:18:34 -0400 Subject: [PATCH] Clean up buildscript, add automatic changelog and curseforge upload --- build.gradle | 84 ++++++++++++++++++++++++++++++++++------------- changelog.txt | 33 +++++++++++++++++++ gradle.properties | 18 +++++++++- 3 files changed, 111 insertions(+), 24 deletions(-) create mode 100644 changelog.txt diff --git a/build.gradle b/build.gradle index 74b4ddd38..381ea54e1 100644 --- a/build.gradle +++ b/build.gradle @@ -10,13 +10,19 @@ buildscript { } plugins { id 'com.github.johnrengelman.shadow' version '5.2.0' + id 'com.matthewprenger.cursegradle' version '1.4.0' } apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = 'mc1.15.2_v0.2.4' +boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equals('false'); + +ext.buildnumber = 0 +project.buildnumber = System.getenv('BUILD_NUMBER') != null ? System.getenv('BUILD_NUMBER') : "custom" + +version = "mc${minecraft_version}_v${mod_version}" + (dev ? "+${buildnumber}" : '') group = 'com.simibubi.create' archivesBaseName = 'create' @@ -95,16 +101,16 @@ configurations { } dependencies { - minecraft 'net.minecraftforge:forge:1.15.2-31.2.3' + minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - def registrate = "com.tterrag.registrate:Registrate:MC1.15.2-0.0.3.17" + def registrate = "com.tterrag.registrate:Registrate:MC${minecraft_version}-${registrate_version}" implementation fg.deobf(registrate) shade registrate // compile against the JEI API but do not include it at runtime - compileOnly fg.deobf("mezz.jei:jei-1.15.2:6.0.0.2:api") + compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}:api") // at runtime, use the full JEI jar - runtimeOnly fg.deobf("mezz.jei:jei-1.15.2:6.0.0.2") + runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}:${jei_version}") // i'll leave this here commented for easier testing //runtimeOnly fg.deobf("vazkii.arl:AutoRegLib:1.4-35.69") @@ -134,24 +140,56 @@ reobf { shadowJar {} } -// Example configuration to allow publishing using the maven-publish task -// we define a custom artifact that is sourced from the reobfJar output task -// and then declare that to be published -// Note you'll need to add a repository here -def reobfFile = file("$buildDir/reobfJar/output.jar") -def reobfArtifact = artifacts.add('default', reobfFile) { - type 'jar' - builtBy 'reobfJar' +String getChangelogText() { + def changelogFile = file('changelog.txt') + String str = '' + int lineCount = 0 + boolean done = false + changelogFile.eachLine { + if (done || it == null) { + return + } + if (it.size() > 1) { + def temp = it + if (lineCount == 0) { + temp = "Create ${version}" + temp = "

$temp

for Minecraft ${minecraft_version}
" + } else if (it.startsWith('-')) { + temp = "   $temp
" + temp = temp.replaceAll("(\\S+\\/\\S+)#([0-9]+)\\b", "\$0"); + temp = temp.replaceAll("#([0-9]+)\\b(?!<\\/a>)", "\$0"); + } else { + temp = "

$temp

" + } + str += temp + lineCount++ + return + } else { + done = true + } + } + return str } -publishing { - publications { - mavenJava(MavenPublication) { - artifact reobfArtifact + +println getChangelogText() + +tasks.curseforge.enabled = !dev && project.hasProperty('simi_curseforge_key') + +curseforge { + if (project.hasProperty('simi_curseforge_key')) { + apiKey = project.simi_curseforge_key + } + + project { + id = project.projectId + changelog = System.getenv('CHANGELOG') == null || System.getenv('CHANGELOG').equals('none') ? getChangelogText() : System.getenv('CHANGELOG') + changelogType = 'html' + releaseType = project.curse_type + mainArtifact(jar) { + displayName = "Create - ${version}" + } + relations { + optionalDependency 'jei' } } - repositories { - maven { - url "file:///${project.projectDir}/mcmodsrepo" - } - } -} \ No newline at end of file +} diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 000000000..16961d7c8 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,33 @@ +0.2.4: +Welcome to the future! Glad you are still here. +Warning +- Do NOT transfer world or schematic data from 1.14. This version is incompatible with any of the prior versions! +New +- Ported Create to Minecraft 1.15.2 +- Added Nixie Tubes +- Added the Extendo Grip +- Added support for TerraForged worldgen +Changes +- Removed Windowlogging, might come back as a stand-alone +- Removed Blazing, Shadow Steel and Gilded Quartz Toolsets +- Massively reworked Create palettes, offering a whole bunch of new patterns! +- The Creative Motor can now face in any direction +- The Creative Motor, Encased Fan and other directional blocks will now reverse their effective rotation when oriented backwards +- Redstone link receivers now emit their signal with the level of the strongest transmitter of the same frequency +- Changed the way cart assemblers react to redstone input +- Blocks that couldn't be placed when a contraption disassembles, now drop as items +- Some fixes regarding inconsistencies with Super Glue placement +- Deployers no longer consume food +- Deployers can now feed players +- Ploughs no longer break blocks if farmland is below them +- Super glue can no longer be removed while inbetween two blocks +Fixes +- Fixed Bells duplicating themselves when moved by a contraption +- Fixed moved Deployers in breaking mode getting stuck on fluids or bedrock +- Schematicannons can no longer place water in the nether +- Fixed bug with extractors not always being able to pull from moved contraptions +- Fixed deployers not able to place certain foods on campfires +- Fixed fire-immune creatures taking damage from heated air currents +- Endermen now take damage from washing fans +- Fixed crash when assembled minecarts pick up the block below their assembler +- Schematicannons can no longer place lit furnaces \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 878bf1f7e..d093825f5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,20 @@ # Sets default memory used for gradle commands. Can be overridden by user or command line properties. # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false \ No newline at end of file +org.gradle.daemon=false + +# mod version info +mod_version=0.2.4 +minecraft_version=1.15.2 +forge_version=31.2.3 + +# dependency versions +registrate_version=0.0.3.17 +jei_version=6.0.0.2 + +# curseforge information +projectId=328085 +curse_type=beta + +# github information +github_project=Creators-of-Create/Create \ No newline at end of file