From 7b370f21131473e30c7028798e971055a9372fd8 Mon Sep 17 00:00:00 2001 From: Rongmario Date: Thu, 20 Jan 2022 16:56:26 +0000 Subject: [PATCH] Made properties editable via gradle.properties - There should be little incentive to touch `build.gradle`other than adding extra deps --- build.gradle | 95 +++++++++++++++---- gradle.properties | 17 +++- .../{io/github => com}/cleanroommc/README.md | 0 3 files changed, 92 insertions(+), 20 deletions(-) rename src/main/java/{io/github => com}/cleanroommc/README.md (100%) diff --git a/build.gradle b/build.gradle index 6c652c6..00b968d 100644 --- a/build.gradle +++ b/build.gradle @@ -2,52 +2,90 @@ buildscript { repositories { jcenter() maven { - url = "https://files.minecraftforge.net/maven" + url = 'https://files.minecraftforge.net/maven' + } + maven { + url = 'https://repo.spongepowered.org/maven' } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' + if (project.use_mixins) { + classpath 'org.spongepowered:mixingradle:0.6-SNAPSHOT' + } } } + apply plugin: 'net.minecraftforge.gradle.forge' -version = "1.0" -group = "io.github.cleanroommc.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html -archivesBaseName = "modid" +if (project.use_mixins) { + apply plugin: 'org.spongepowered.mixin' +} + +version = project.mod_version +group = project.maven_group +archivesBaseName = project.archives_base_name sourceCompatibility = targetCompatibility = '1.8' + compileJava { sourceCompatibility = targetCompatibility = '1.8' } +configurations { + embed + implementation.extendsFrom(embed) +} + minecraft { - version = "1.12.2-14.23.5.2847" - runDir = "run" - - // the mappings can be changed at any time, and must be in the following format. - // snapshot_YYYYMMDD snapshot are built nightly. - // stable_# stables are built at the discretion of the MCP team. - // Use non-default mappings at your own risk. they may not always work. - // simply re-run your setup task after changing the mappings to update your workspace. - mappings = "stable_39" - // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. + version = '1.12.2-14.23.5.2847' + runDir = 'run' + mappings = 'stable_39' +} + +repositories { + maven { + url 'https://jitpack.io' + } + maven { + url 'https://repo.spongepowered.org/maven' + } } dependencies { - // Remove below comments if you want to an API to download external assets from - // deobfCompile ("com.github.CleanroomMC:AssetMover:0.2") + if (project.use_assetmover) { + deobfCompile ('com.github.CleanroomMC:AssetMover:0.2') + } + if (project.use_mixins) { + embed ('org.spongepowered:mixin:0.8.3') { + exclude module: 'asm-commons' + exclude module: 'asm-tree' + exclude module: 'launchwrapper' + exclude module: 'guava' + exclude module: 'log4j-core' + exclude module: 'gson' + exclude module: 'commons-io' + } + annotationProcessor 'org.spongepowered:mixin:0.8.3:processor' + } +} + +sourceSets { + + main { + ext.refMap = 'mixins.' + archives_base_name + '.refmap.json' + } } processResources { // this will ensure that this task is redone when the versions change. - inputs.property "version", project.version - inputs.property "mcversion", project.minecraft.version + inputs.property 'version', project.version + inputs.property 'mcversion', project.minecraft.version // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' - // replace version and mcversion expand 'version':project.version, 'mcversion':project.minecraft.version } @@ -55,4 +93,23 @@ processResources { from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } + rename '(.+_at.cfg)', 'META-INF/$1' // Access Transformers +} + +jar { + manifest { + def attribute_map = [:] + if (project.use_coremod) { + attribute_map['FMLCorePlugin'] = project.coremod_plugin_class_name + } + if (project.use_mixins) { + attribute_map['TweakClass'] = 'org.spongepowered.asm.launch.MixinTweaker' + } + attributes(attribute_map) + } + if (project.use_mixins && project.pack_mixins_in_jar) { + from (configurations.embed.collect { it.isDirectory() ? it : zipTree(it) }) { + exclude 'LICENSE.txt', 'module-info.class', 'META-INF/*' + } + } } diff --git a/gradle.properties b/gradle.properties index e9b9fd5..69dbec5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,18 @@ # 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.jvmargs = -Xmx3G + +# Mod Information +mod_version = 1.0 +maven_group = com.cleanroommc +archives_base_name = modid + +# Boilerplate Options +use_mixins = false +use_coremod = false +use_assetmover = false + +pack_mixins_in_jar = false + +# Coremod Arguments +coremod_plugin_class_name = \ No newline at end of file diff --git a/src/main/java/io/github/cleanroommc/README.md b/src/main/java/com/cleanroommc/README.md similarity index 100% rename from src/main/java/io/github/cleanroommc/README.md rename to src/main/java/com/cleanroommc/README.md