Make config wrapping possible to disable

This commit is contained in:
embeddedt 2023-06-20 09:42:44 -04:00
parent 41b71c5e59
commit c1acdf1bb4
No known key found for this signature in database
GPG Key ID: A69433EC199B5613
2 changed files with 6 additions and 0 deletions

View File

@ -163,6 +163,9 @@ public class ModernFixEarlyConfig {
this.scanForAndBuildMixinOptions();
mixinOptions.addAll(DEFAULT_SETTING_OVERRIDES.keySet());
if(!isFabric) {
mixinOptions.add("mixin.bugfix.fix_config_crashes");
}
for(String optionName : mixinOptions) {
boolean defaultEnabled = DEFAULT_SETTING_OVERRIDES.getOrDefault(optionName, true);
this.options.putIfAbsent(optionName, new Option(optionName, defaultEnabled, false));

View File

@ -5,6 +5,7 @@ import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
import net.minecraftforge.fml.config.ModConfig;
import org.embeddedt.modernfix.ModernFix;
import org.embeddedt.modernfix.core.ModernFixMixinPlugin;
import java.util.Optional;
import java.util.function.Consumer;
@ -17,6 +18,8 @@ public class ConfigFixer {
* Should have no noticeable performance impact as config handlers are virtually instant.
*/
public static void replaceConfigHandlers() {
if(!ModernFixMixinPlugin.instance.isOptionEnabled("bugfix.fix_config_crashes.ConfigFixerMixin"))
return;
ModList.get().forEachModContainer((id, container) -> {
try {
Optional<Consumer<ModConfig.ModConfigEvent>> configOpt = ObfuscationReflectionHelper.getPrivateValue(ModContainer.class, container, "configHandler");