From ca8af3f754347238ae2a9ddc5e3a198bca5a8dfe Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 25 Jan 2021 03:48:06 +0100 Subject: [PATCH 1/2] Fix shader effects location being hardcoded to minecraft namespace --- .../fabric/client/MixinEffectInstance.java | 38 +++++++++++++++++++ .../main/resources/architectury.mixins.json | 37 +++++++++++++++--- 2 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinEffectInstance.java diff --git a/fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinEffectInstance.java b/fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinEffectInstance.java new file mode 100644 index 00000000..838e8d31 --- /dev/null +++ b/fabric/src/main/java/me/shedaniel/architectury/mixin/fabric/client/MixinEffectInstance.java @@ -0,0 +1,38 @@ +package me.shedaniel.architectury.mixin.fabric.client; + +import com.mojang.blaze3d.shaders.Program; +import net.minecraft.client.renderer.EffectInstance; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Unique +@Mixin(EffectInstance.class) +public class MixinEffectInstance { + @Redirect( + method = "", + at = @At(value = "NEW", + target = "(Ljava/lang/String;)Lnet/minecraft/resources/ResourceLocation;", + ordinal = 0) + ) + private ResourceLocation mojangPls(String _0, ResourceManager rm, String str) { + return mojangPls(new ResourceLocation(str), ".json"); + } + + @Redirect( + method = "getOrCreate", + at = @At(value = "NEW", + target = "(Ljava/lang/String;)Lnet/minecraft/resources/ResourceLocation;", + ordinal = 0) + ) + private static ResourceLocation mojangPls(String _0, ResourceManager rm, Program.Type type, String str) { + return mojangPls(new ResourceLocation(str), type.getExtension()); + } + + private static ResourceLocation mojangPls(ResourceLocation rl, String ext) { + return new ResourceLocation(rl.getNamespace(), "shaders/program/" + rl.getPath() + ext); + } +} diff --git a/fabric/src/main/resources/architectury.mixins.json b/fabric/src/main/resources/architectury.mixins.json index 33df1a24..9d2fa087 100644 --- a/fabric/src/main/resources/architectury.mixins.json +++ b/fabric/src/main/resources/architectury.mixins.json @@ -4,14 +4,39 @@ "compatibilityLevel": "JAVA_8", "minVersion": "0.7.11", "client": [ - "client.MixinClientLevel", "client.MixinClientPacketListener", "client.MixinDebugScreenOverlay", "client.MixinGameRenderer", "client.MixinIntegratedServer", - "client.MixinKeyboardHandler", "client.MixinMinecraft", "client.MixinMouseHandler", "client.MixinMultiPlayerGameMode", "client.MixinScreen", - "client.MixinTextureAtlas" + "client.MixinClientLevel", + "client.MixinClientPacketListener", + "client.MixinDebugScreenOverlay", + "client.MixinGameRenderer", + "client.MixinIntegratedServer", + "client.MixinKeyboardHandler", + "client.MixinMinecraft", + "client.MixinMouseHandler", + "client.MixinMultiPlayerGameMode", + "client.MixinScreen", + "client.MixinTextureAtlas", + "client.MixinEffectInstance" ], "mixins": [ - "ExplosionPreInvoker", "LivingDeathInvoker", "MixinBlockEntityExtension", "MixinBlockItem", "MixinCommands", "MixinDedicatedServer", "MixinExplosion", - "MixinFurnaceResultSlot", "MixinItemEntity", "MixinLivingEntity", "MixinPlayer", "MixinPlayerAdvancements", "MixinPlayerList", "MixinResultSlot", - "MixinServerGamePacketListenerImpl", "MixinServerLevel", "MixinServerPlayer", "MixinServerPlayerGameMode", "PlayerAttackInvoker" + "ExplosionPreInvoker", + "LivingDeathInvoker", + "MixinBlockEntityExtension", + "MixinBlockItem", + "MixinCommands", + "MixinDedicatedServer", + "MixinExplosion", + "MixinFurnaceResultSlot", + "MixinItemEntity", + "MixinLivingEntity", + "MixinPlayer", + "MixinPlayerAdvancements", + "MixinPlayerList", + "MixinResultSlot", + "MixinServerGamePacketListenerImpl", + "MixinServerLevel", + "MixinServerPlayer", + "MixinServerPlayerGameMode", + "PlayerAttackInvoker" ], "injectors": { "defaultRequire": 1 From 5e808e52ee4da9872991684f959fdfda3086af13 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Mon, 25 Jan 2021 11:56:49 +0800 Subject: [PATCH 2/2] Add PR snapshots --- .github/workflows/snapshot.yml | 22 ++++++++++++++++++++++ build.gradle | 18 +++++++++++++++--- gradle.properties | 3 ++- 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/snapshot.yml diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml new file mode 100644 index 00000000..41294bfe --- /dev/null +++ b/.github/workflows/snapshot.yml @@ -0,0 +1,22 @@ +name: Snapshot Compile & Release + +on: + [pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Upload to Bintray + run: ./gradlew bintrayUpload --stacktrace + env: + BINTRAY_USER: shedaniel + BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }} + PR_NUM: ${{github.event.number}} diff --git a/build.gradle b/build.gradle index fddfe4ac..4252a8f0 100644 --- a/build.gradle +++ b/build.gradle @@ -25,9 +25,21 @@ allprojects { apply plugin: "java" apply plugin: "architectury-plugin" apply plugin: "org.cadixdev.licenser" + + ext { + isSnapshot = System.getenv("PR_NUM") != null + } + + def runNumber = (System.getenv("GITHUB_RUN_NUMBER") == null ? (((short) new Random().nextInt()).abs() + 1000).toString() : System.getenv("GITHUB_RUN_NUMBER")) - archivesBaseName = rootProject.archives_base_name - version = rootProject.mod_version + "." + (System.getenv("GITHUB_RUN_NUMBER") == null ? "9999" : System.getenv("GITHUB_RUN_NUMBER")) + if (!ext.isSnapshot) { + version = rootProject.base_version + "." + runNumber + archivesBaseName = rootProject.archives_base_name + } else { + version = rootProject.base_version + "-PR." + System.getenv("PR_NUM") + "." + runNumber + archivesBaseName = rootProject.archives_base_name_snapshot + } + group = rootProject.maven_group tasks.withType(JavaCompile) { @@ -55,7 +67,7 @@ allprojects { ignoreFailures = true } - + ext { releaseChangelog = { def dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm") diff --git a/gradle.properties b/gradle.properties index 21506c73..68623ff7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,8 @@ minecraft_version=1.16.4 supported_version=1.16.4/5 archives_base_name=architectury -mod_version=1.4 +archives_base_name_snapshot=architectury-snapshot +base_version=1.4 maven_group=me.shedaniel fabric_loader_version=0.10.8