From 2246b79a85a887b3932ae5b3ad42771ce6db3fdb Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sun, 23 Jul 2023 18:32:50 -0400 Subject: [PATCH] Fix mod mixins not being disabled if there is an early load error --- .../org/embeddedt/modernfix/core/ModernFixMixinPlugin.java | 2 ++ .../embeddedt/modernfix/core/config/ModernFixEarlyConfig.java | 2 +- .../modernfix/dynamicresources/ModelBakeryHelpers.java | 3 +++ .../modernfix/platform/forge/ModernFixPlatformHooksImpl.java | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java b/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java index 0647b4b3..ba391df8 100644 --- a/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java +++ b/common/src/main/java/org/embeddedt/modernfix/core/ModernFixMixinPlugin.java @@ -41,6 +41,8 @@ public class ModernFixMixinPlugin implements IMixinConfigPlugin { if (option.isUserDefined()) { source = "user configuration"; + } else if (!ModernFixPlatformHooks.isLoadingNormally()) { + source = "load error"; } else if (option.isModDefined()) { source = "mods [" + String.join(", ", option.getDefiningMods()) + "]"; } diff --git a/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java b/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java index d19530da..d463c345 100644 --- a/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java +++ b/common/src/main/java/org/embeddedt/modernfix/core/config/ModernFixEarlyConfig.java @@ -245,7 +245,7 @@ public class ModernFixEarlyConfig { private void disableIfModPresent(String configName, String... ids) { for(String id : ids) { - if(modPresent(id)) { + if(!ModernFixPlatformHooks.isLoadingNormally() || modPresent(id)) { Option option = this.options.get(configName); if(option != null) option.addModOverride(false, id); diff --git a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java index b22d46bd..5fe31f1a 100644 --- a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java +++ b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java @@ -26,6 +26,7 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.Property; import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.api.entrypoint.ModernFixClientIntegration; +import org.embeddedt.modernfix.platform.ModernFixPlatformHooks; import java.io.IOException; import java.io.InputStream; @@ -116,6 +117,8 @@ public class ModelBakeryHelpers { Set modelFiles, UnbakedModel missingModel, Function modelDeserializer, Function bakeryModelGetter) { + if(!ModernFixPlatformHooks.isLoadingNormally()) + return; Stopwatch stopwatch = Stopwatch.createStarted(); final Object2IntOpenHashMap blockstateErrors = new Object2IntOpenHashMap<>(); /* diff --git a/forge/src/main/java/org/embeddedt/modernfix/platform/forge/ModernFixPlatformHooksImpl.java b/forge/src/main/java/org/embeddedt/modernfix/platform/forge/ModernFixPlatformHooksImpl.java index 40c0fafe..b03b6029 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/platform/forge/ModernFixPlatformHooksImpl.java +++ b/forge/src/main/java/org/embeddedt/modernfix/platform/forge/ModernFixPlatformHooksImpl.java @@ -86,6 +86,8 @@ public class ModernFixPlatformHooksImpl { } public static boolean isLoadingNormally() { + if(!LoadingModList.get().getErrors().isEmpty()) + return false; return ModLoader.isLoadingStateValid(); }