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 d37c8b087..78481bf26 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 @@ -14,16 +14,23 @@ import java.util.Set; */ public class ForgeMixinPlugin implements IMixinConfigPlugin { - private boolean isForgeMixinFile = false; + private boolean firstRun = false; + private boolean isForgeMixinFile; @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - if (!this.isForgeMixinFile) - { - return false; + if (!this.firstRun) { + try { + Class cls = Class.forName("net.neoforged.fml.common.Mod"); // Check if a NeoForge exclusive class exists + this.isForgeMixinFile = false; + } catch (ClassNotFoundException e) { + this.isForgeMixinFile = true; + } } + if (!this.isForgeMixinFile) + 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 @@ -41,12 +48,7 @@ public class ForgeMixinPlugin implements IMixinConfigPlugin @Override - public void onLoad(String mixinPackage) - { - // prevents running neoforge mixins - // com.seibel.distanthorizons.forge.mixins - this.isForgeMixinFile = mixinPackage.contains(".forge."); - } + public void onLoad(String mixinPackage) { } @Override public String getRefMapperConfig() { return null; } diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/NeoforgeMixinPlugin.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/NeoforgeMixinPlugin.java index d977e7765..ba48ebaea 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/NeoforgeMixinPlugin.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/NeoforgeMixinPlugin.java @@ -14,16 +14,23 @@ import java.util.Set; */ public class NeoforgeMixinPlugin implements IMixinConfigPlugin { - private boolean isNeoforgeMixinFile = false; + private boolean firstRun = false; + private boolean isNeoforgeMixinFile; @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - if (!this.isNeoforgeMixinFile) - { - return false; + if (!this.firstRun) { + try { + Class cls = Class.forName("net.neoforged.fml.common.Mod"); // Check if a NeoForge exclusive class exists + this.isNeoforgeMixinFile = true; + } catch (ClassNotFoundException e) { + this.isNeoforgeMixinFile = false; + } } + if (!this.isNeoforgeMixinFile) + 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 @@ -41,12 +48,7 @@ public class NeoforgeMixinPlugin implements IMixinConfigPlugin @Override - public void onLoad(String mixinPackage) - { - // prevents running forge mixins - // example string: com.seibel.distanthorizons.neoforge.mixins - this.isNeoforgeMixinFile = mixinPackage.contains("neo"); - } + public void onLoad(String mixinPackage) { } @Override public String getRefMapperConfig() { return null; }