From 6c4341124e18320620985dd31acc1b7c8b80a5c6 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 16 Feb 2022 15:15:41 +0800 Subject: [PATCH] Update to Loom 0.11, add example common mixin, add common AWs --- body.txt | 2 + generator.config.json | 45 +++++++++++++------ gradle/wrapper/gradle-wrapper.properties | 2 +- templates/architectury/build.gradle | 2 +- templates/architectury/common/build.gradle | 4 ++ .../main/resources/architectury.common.json | 3 ++ .../main/resources/examplemod.accesswidener | 1 + templates/architectury/fabric/build.gradle | 7 +++ .../fabric/src/main/resources/fabric.mod.json | 5 +-- templates/architectury/forge/build.gradle | 10 +++++ .../gradle/wrapper/gradle-wrapper.properties | 2 +- templates/forge/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../examplemod/mixin/MixinTitleScreen.java | 15 +++++++ .../resources/examplemod-common.mixins.json | 1 + 15 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 templates/architectury/common/src/main/resources/architectury.common.json create mode 100644 templates/architectury/common/src/main/resources/examplemod.accesswidener create mode 100644 templates/mixin/common/src/main/java/net/examplemod/mixin/MixinTitleScreen.java diff --git a/body.txt b/body.txt index 939b308..c1156a7 100644 --- a/body.txt +++ b/body.txt @@ -4,5 +4,7 @@ The following templates are offered in [Creative Commons Zero v1.0 Universal](ht Architectury API is added to the templates by default, there are instructions on how to remove them within the buildscripts, depending on the API is **not required** to use the Architectury toolchain. +**Make sure** to do a find everywhere on `examplemod` and replace it with your own mod id. + **Documentation:** [https://docs.architectury.dev/](https://docs.architectury.dev/) **Discord:** [https://discord.gg/C2RdJDpRBP](https://discord.gg/C2RdJDpRBP) \ No newline at end of file diff --git a/generator.config.json b/generator.config.json index 9db548d..7967001 100644 --- a/generator.config.json +++ b/generator.config.json @@ -69,7 +69,8 @@ "filter": "1\\.16\\.5-.*", "pom": "https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml" }, - "FORGE_LOADER_MAJOR": "36" + "FORGE_LOADER_MAJOR": "36", + "MIXIN_FABRIC_BLOCK": "" } }, "1.16-architectury-mixin": { @@ -81,6 +82,7 @@ ], "inherit_tokens": "1.16-architectury", "tokens": { + "MIXIN_FABRIC_BLOCK": "\n \"mixins\": [\n \"examplemod.mixins.json\",\n \"examplemod-common.mixins.json\"\n ],", "MIXIN_COMPAT_LEVEL": "JAVA_8", "LOOM_FORGE_EXT": "loom {\n forge {\n mixinConfig \"examplemod-common.mixins.json\"\n mixinConfig \"examplemod.mixins.json\"\n }\n}\n" } @@ -139,7 +141,8 @@ "filter": "1\\.17\\.1-.*", "pom": "https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml" }, - "FORGE_LOADER_MAJOR": "37" + "FORGE_LOADER_MAJOR": "37", + "MIXIN_FABRIC_BLOCK": "" } }, "1.17-architectury-mixin": { @@ -151,41 +154,42 @@ ], "inherit_tokens": "1.17-architectury", "tokens": { + "MIXIN_FABRIC_BLOCK": "\n \"mixins\": [\n \"examplemod.mixins.json\",\n \"examplemod-common.mixins.json\"\n ],", "MIXIN_COMPAT_LEVEL": "JAVA_16", "LOOM_FORGE_EXT": "loom {\n forge {\n mixinConfig \"examplemod-common.mixins.json\"\n mixinConfig \"examplemod.mixins.json\"\n }\n}\n" } }, "1.18-forge": { - "description": "1.18 Forge-Only Template", + "description": "1.18.1 Forge-Only Template", "templates": [ "templates/forge" ], "tokens": { - "MINECRAFT": "1.18", + "MINECRAFT": "1.18.1", "JAVA_VERSION": "#JAVA_17", "COMPILE_JAVA": "#COMPILE_JAVA_17", "MCMETA_FORMAT": "8", - "JEI_MAJOR": "9s", + "JEI_MAJOR": "9", "YARN_MAPPINGS": { - "filter": "1\\.18\\+build\\..*", + "filter": "1\\.18\\.1\\+build\\..*", "pom": "https://maven.fabricmc.net/net/fabricmc/yarn/maven-metadata.xml" }, "FORGE": { - "filter": "1\\.18-.*", + "filter": "1\\.18\\.1-.*", "pom": "https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml" }, - "FORGE_LOADER_MAJOR": "38", + "FORGE_LOADER_MAJOR": "39", "MIXIN_COMPAT_LEVEL": "JAVA_16" } }, "1.18-architectury": { - "description": "1.18 Multi-Loader Template", + "description": "1.18.1 Multi-Loader Template", "templates": [ "templates/architectury", "templates/api_new" ], "tokens": { - "MINECRAFT": "1.18", + "MINECRAFT": "1.18.1", "JAVA_VERSION": "#JAVA_17", "COMPILE_JAVA": "#COMPILE_JAVA_17_ARCH", "FABRIC_LOADER": "#FABRIC_LOADER", @@ -198,7 +202,7 @@ "pom": "https://maven.architectury.dev/dev/architectury/architectury/maven-metadata.xml" }, "YARN_MAPPINGS": { - "filter": "1\\.18\\+build\\..*", + "filter": "1\\.18\\.1\\+build\\..*", "pom": "https://maven.fabricmc.net/net/fabricmc/yarn/maven-metadata.xml" }, "FABRIC_API": { @@ -206,10 +210,25 @@ "pom": "https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/maven-metadata.xml" }, "FORGE": { - "filter": "1\\.18-.*", + "filter": "1\\.18\\.1-.*", "pom": "https://maven.minecraftforge.net/net/minecraftforge/forge/maven-metadata.xml" }, - "FORGE_LOADER_MAJOR": "38" + "FORGE_LOADER_MAJOR": "39", + "MIXIN_FABRIC_BLOCK": "" + } + }, + "1.18-architectury-mixin": { + "description": "1.18.1 Multi-Loader Template with Mixins", + "templates": [ + "templates/architectury", + "templates/api_new", + "templates/mixin" + ], + "inherit_tokens": "1.18-architectury", + "tokens": { + "MIXIN_FABRIC_BLOCK": "\n \"mixins\": [\n \"examplemod.mixins.json\",\n \"examplemod-common.mixins.json\"\n ],", + "MIXIN_COMPAT_LEVEL": "JAVA_16", + "LOOM_FORGE_EXT": "loom {\n forge {\n mixinConfig \"examplemod-common.mixins.json\"\n mixinConfig \"examplemod.mixins.json\"\n }\n}\n" } } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e6e589..41dfb87 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/templates/architectury/build.gradle b/templates/architectury/build.gradle index 2770a76..63a6b56 100644 --- a/templates/architectury/build.gradle +++ b/templates/architectury/build.gradle @@ -1,6 +1,6 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "0.10.0-SNAPSHOT" apply false + id "dev.architectury.loom" version "0.11.0-SNAPSHOT" apply false } architectury { diff --git a/templates/architectury/common/build.gradle b/templates/architectury/common/build.gradle index ecb16b1..90c86a5 100644 --- a/templates/architectury/common/build.gradle +++ b/templates/architectury/common/build.gradle @@ -10,6 +10,10 @@ architectury { common() } +loom { + accessWidenerPath = file("src/main/resources/examplemod.accesswidener") +} + publishing { publications { mavenCommon(MavenPublication) { diff --git a/templates/architectury/common/src/main/resources/architectury.common.json b/templates/architectury/common/src/main/resources/architectury.common.json new file mode 100644 index 0000000..bca13fd --- /dev/null +++ b/templates/architectury/common/src/main/resources/architectury.common.json @@ -0,0 +1,3 @@ +{ + "accessWidener": "examplemod.accesswidener" +} \ No newline at end of file diff --git a/templates/architectury/common/src/main/resources/examplemod.accesswidener b/templates/architectury/common/src/main/resources/examplemod.accesswidener new file mode 100644 index 0000000..13268c3 --- /dev/null +++ b/templates/architectury/common/src/main/resources/examplemod.accesswidener @@ -0,0 +1 @@ +accessWidener v2 named \ No newline at end of file diff --git a/templates/architectury/fabric/build.gradle b/templates/architectury/fabric/build.gradle index 970612f..8b7f2e9 100644 --- a/templates/architectury/fabric/build.gradle +++ b/templates/architectury/fabric/build.gradle @@ -7,6 +7,10 @@ architectury { fabric() } +loom { + accessWidenerPath = project(":common").loom.accessWidenerPath +} + configurations { common shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. @@ -34,11 +38,14 @@ processResources { } shadowJar { + exclude "architectury.common.json" + configurations = [project.configurations.shadowCommon] classifier "dev-shadow" } remapJar { + injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar classifier null diff --git a/templates/architectury/fabric/src/main/resources/fabric.mod.json b/templates/architectury/fabric/src/main/resources/fabric.mod.json index e58375d..edd98f7 100644 --- a/templates/architectury/fabric/src/main/resources/fabric.mod.json +++ b/templates/architectury/fabric/src/main/resources/fabric.mod.json @@ -18,13 +18,10 @@ "main": [ "net.examplemod.fabric.ExampleModFabric" ] - }, + },@MIXIN_FABRIC_BLOCK@ "depends": { "fabric": "*", "minecraft": ">=@MINECRAFT@", "architectury": ">=@ARCHITECTURY_API@" - }, - "suggests": { - "flamingo": "*" } } \ No newline at end of file diff --git a/templates/architectury/forge/build.gradle b/templates/architectury/forge/build.gradle index cec741d..8522187 100644 --- a/templates/architectury/forge/build.gradle +++ b/templates/architectury/forge/build.gradle @@ -7,6 +7,15 @@ architectury { forge() } +loom { + accessWidenerPath = project(":common").loom.accessWidenerPath + + forge { + convertAccessWideners = true + extraAccessWideners.add loom.accessWidenerPath.get().asFile.name + } +} + configurations { common shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this. @@ -34,6 +43,7 @@ processResources { shadowJar { exclude "fabric.mod.json" + exclude "architectury.common.json" configurations = [project.configurations.shadowCommon] classifier "dev-shadow" diff --git a/templates/architectury/gradle/wrapper/gradle-wrapper.properties b/templates/architectury/gradle/wrapper/gradle-wrapper.properties index 2e6e589..41dfb87 100644 --- a/templates/architectury/gradle/wrapper/gradle-wrapper.properties +++ b/templates/architectury/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/templates/forge/build.gradle b/templates/forge/build.gradle index cfe5a70..d0d9c63 100644 --- a/templates/forge/build.gradle +++ b/templates/forge/build.gradle @@ -1,5 +1,5 @@ plugins { - id "dev.architectury.loom" version "0.10.0-SNAPSHOT" + id "dev.architectury.loom" version "0.11.0-SNAPSHOT" id "maven-publish" } diff --git a/templates/forge/gradle/wrapper/gradle-wrapper.properties b/templates/forge/gradle/wrapper/gradle-wrapper.properties index 2e6e589..41dfb87 100644 --- a/templates/forge/gradle/wrapper/gradle-wrapper.properties +++ b/templates/forge/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/templates/mixin/common/src/main/java/net/examplemod/mixin/MixinTitleScreen.java b/templates/mixin/common/src/main/java/net/examplemod/mixin/MixinTitleScreen.java new file mode 100644 index 0000000..5bd63d6 --- /dev/null +++ b/templates/mixin/common/src/main/java/net/examplemod/mixin/MixinTitleScreen.java @@ -0,0 +1,15 @@ +package net.examplemod.mixin; + +import net.minecraft.client.gui.screens.TitleScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TitleScreen.class) +public class MixinTitleScreen { + @Inject(at = @At("HEAD"), method = "init()V") + private void init(CallbackInfo info) { + System.out.println("Hello from example architectury common mixin!"); + } +} \ No newline at end of file diff --git a/templates/mixin/common/src/main/resources/examplemod-common.mixins.json b/templates/mixin/common/src/main/resources/examplemod-common.mixins.json index d8e30be..60277f2 100644 --- a/templates/mixin/common/src/main/resources/examplemod-common.mixins.json +++ b/templates/mixin/common/src/main/resources/examplemod-common.mixins.json @@ -3,6 +3,7 @@ "package": "net.examplemod.mixin", "compatibilityLevel": "@MIXIN_COMPAT_LEVEL@", "client": [ + "MixinTitleScreen" ], "mixins": [ ],