From 5f16f81d58c0b66ec5566d2e593353d94c5c7dd5 Mon Sep 17 00:00:00 2001 From: coolGi Date: Sun, 24 Dec 2023 21:16:10 +1030 Subject: [PATCH] Merged jar, now for fabric (works on quilt as well), forge and neoforged --- forge/build.gradle | 2 +- .../distanthorizons/forge/mixins/ForgeMixinPlugin.java | 4 ++++ ...izons.mixins.json => DistantHorizons.forge.mixins.json} | 0 forge/src/main/resources/META-INF/mods.toml | 3 ++- .../{ForgeMixinPlugin.java => NeoforgedMixinPlugin.java} | 6 +++++- ...s.mixins.json => DistantHorizons.neoforged.mixins.json} | 4 ++-- neoforged/src/main/resources/META-INF/mods.toml | 7 +++++-- 7 files changed, 19 insertions(+), 7 deletions(-) rename forge/src/main/resources/{DistantHorizons.mixins.json => DistantHorizons.forge.mixins.json} (100%) rename neoforged/src/main/java/com/seibel/distanthorizons/neoforged/mixins/{ForgeMixinPlugin.java => NeoforgedMixinPlugin.java} (88%) rename neoforged/src/main/resources/{DistantHorizons.mixins.json => DistantHorizons.neoforged.mixins.json} (81%) diff --git a/forge/build.gradle b/forge/build.gradle index 0e34fa028..9c159a519 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -28,7 +28,7 @@ loom { extraAccessWideners.add loom.accessWidenerPath.get().asFile.name mixinConfigs = [ - "DistantHorizons.mixins.json" + "DistantHorizons.forge.mixins.json" ] } diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/ForgeMixinPlugin.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/ForgeMixinPlugin.java index 78f4fd7e5..9d2d7aa3c 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/ForgeMixinPlugin.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/ForgeMixinPlugin.java @@ -1,5 +1,6 @@ package com.seibel.distanthorizons.forge.mixins; +import net.minecraft.client.ClientBrandRetriever; import net.minecraftforge.fml.ModList; import org.objectweb.asm.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; @@ -18,6 +19,9 @@ public class ForgeMixinPlugin implements IMixinConfigPlugin @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (!ClientBrandRetriever.getClientModName().equals("forge")) + return false; + if (mixinClassName.contains(".mods.")) { // If the mixin wants to go into a mod then we check if that mod is loaded or not return ModList.get().isLoaded( diff --git a/forge/src/main/resources/DistantHorizons.mixins.json b/forge/src/main/resources/DistantHorizons.forge.mixins.json similarity index 100% rename from forge/src/main/resources/DistantHorizons.mixins.json rename to forge/src/main/resources/DistantHorizons.forge.mixins.json diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 43a8eb78d..2a984312e 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -26,7 +26,8 @@ issueTrackerURL = "${issues}" [[dependencies.distanthorizons]] modId = "minecraft" - mandatory = true + mandatory = true # Forge syntax + type = "required" # Neoforged syntax versionRange = "${compatible_forgemc_versions}" # Where we set what version of mc it is avalible for ordering = "NONE" side = "BOTH" \ No newline at end of file diff --git a/neoforged/src/main/java/com/seibel/distanthorizons/neoforged/mixins/ForgeMixinPlugin.java b/neoforged/src/main/java/com/seibel/distanthorizons/neoforged/mixins/NeoforgedMixinPlugin.java similarity index 88% rename from neoforged/src/main/java/com/seibel/distanthorizons/neoforged/mixins/ForgeMixinPlugin.java rename to neoforged/src/main/java/com/seibel/distanthorizons/neoforged/mixins/NeoforgedMixinPlugin.java index d2d467754..68566e4f3 100644 --- a/neoforged/src/main/java/com/seibel/distanthorizons/neoforged/mixins/ForgeMixinPlugin.java +++ b/neoforged/src/main/java/com/seibel/distanthorizons/neoforged/mixins/NeoforgedMixinPlugin.java @@ -1,5 +1,6 @@ package com.seibel.distanthorizons.neoforged.mixins; +import net.minecraft.client.ClientBrandRetriever; import net.neoforged.fml.ModList; import org.objectweb.asm.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; @@ -12,12 +13,15 @@ import java.util.Set; * @author coolGi * @author cortex */ -public class ForgeMixinPlugin implements IMixinConfigPlugin +public class NeoforgedMixinPlugin implements IMixinConfigPlugin { @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (!ClientBrandRetriever.getClientModName().equals("neoforge")) + return false; + if (mixinClassName.contains(".mods.")) { // If the mixin wants to go into a mod then we check if that mod is loaded or not return ModList.get().isLoaded( diff --git a/neoforged/src/main/resources/DistantHorizons.mixins.json b/neoforged/src/main/resources/DistantHorizons.neoforged.mixins.json similarity index 81% rename from neoforged/src/main/resources/DistantHorizons.mixins.json rename to neoforged/src/main/resources/DistantHorizons.neoforged.mixins.json index b30ef91ed..c8d168b6c 100644 --- a/neoforged/src/main/resources/DistantHorizons.mixins.json +++ b/neoforged/src/main/resources/DistantHorizons.neoforged.mixins.json @@ -1,7 +1,7 @@ { "required": true, "minVersion": "0.8", - "package": "com.seibel.distanthorizons.forge.mixins", + "package": "com.seibel.distanthorizons.neoforged.mixins", "mixins": [ "server.unsafe.MixinThreadingDetector", "server.MixinUtilBackgroundThread", @@ -20,5 +20,5 @@ "client.MixinTextureUtil" ], "server": [], - "plugin": "com.seibel.distanthorizons.forge.mixins.ForgeMixinPlugin" + "plugin": "com.seibel.distanthorizons.neoforged.mixins.NeoforgedMixinPlugin" } diff --git a/neoforged/src/main/resources/META-INF/mods.toml b/neoforged/src/main/resources/META-INF/mods.toml index c7e5b0193..2904583d0 100644 --- a/neoforged/src/main/resources/META-INF/mods.toml +++ b/neoforged/src/main/resources/META-INF/mods.toml @@ -23,12 +23,15 @@ issueTrackerURL = "${issues}" #// Allow any version to be present (or not) on the server acceptableRemoteVersions = "*" +# TODO: Once there is a way to move this to the `META-INF/MANIFEST.MF` with architectury, DO SO! +# (currently, this only works cus neoforge's mods.toml is added to the jar after forge's mods.toml, so this can work [[mixins]] -config = "DistantHorizons.mixins.json" + config = "DistantHorizons.neoforged.mixins.json" [[dependencies.distanthorizons]] modId = "minecraft" - type = "required" + mandatory = true # Forge syntax + type = "required" # Neoforged syntax versionRange = "${compatible_forgemc_versions}" # Where we set what version of mc it is avalible for ordering = "NONE" side = "BOTH" \ No newline at end of file