Make config wrapping possible to disable
This commit is contained in:
parent
41b71c5e59
commit
c1acdf1bb4
|
|
@ -163,6 +163,9 @@ public class ModernFixEarlyConfig {
|
||||||
|
|
||||||
this.scanForAndBuildMixinOptions();
|
this.scanForAndBuildMixinOptions();
|
||||||
mixinOptions.addAll(DEFAULT_SETTING_OVERRIDES.keySet());
|
mixinOptions.addAll(DEFAULT_SETTING_OVERRIDES.keySet());
|
||||||
|
if(!isFabric) {
|
||||||
|
mixinOptions.add("mixin.bugfix.fix_config_crashes");
|
||||||
|
}
|
||||||
for(String optionName : mixinOptions) {
|
for(String optionName : mixinOptions) {
|
||||||
boolean defaultEnabled = DEFAULT_SETTING_OVERRIDES.getOrDefault(optionName, true);
|
boolean defaultEnabled = DEFAULT_SETTING_OVERRIDES.getOrDefault(optionName, true);
|
||||||
this.options.putIfAbsent(optionName, new Option(optionName, defaultEnabled, false));
|
this.options.putIfAbsent(optionName, new Option(optionName, defaultEnabled, false));
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import net.minecraftforge.fml.ModList;
|
||||||
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
|
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
|
||||||
import net.minecraftforge.fml.config.ModConfig;
|
import net.minecraftforge.fml.config.ModConfig;
|
||||||
import org.embeddedt.modernfix.ModernFix;
|
import org.embeddedt.modernfix.ModernFix;
|
||||||
|
import org.embeddedt.modernfix.core.ModernFixMixinPlugin;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
@ -17,6 +18,8 @@ public class ConfigFixer {
|
||||||
* Should have no noticeable performance impact as config handlers are virtually instant.
|
* Should have no noticeable performance impact as config handlers are virtually instant.
|
||||||
*/
|
*/
|
||||||
public static void replaceConfigHandlers() {
|
public static void replaceConfigHandlers() {
|
||||||
|
if(!ModernFixMixinPlugin.instance.isOptionEnabled("bugfix.fix_config_crashes.ConfigFixerMixin"))
|
||||||
|
return;
|
||||||
ModList.get().forEachModContainer((id, container) -> {
|
ModList.get().forEachModContainer((id, container) -> {
|
||||||
try {
|
try {
|
||||||
Optional<Consumer<ModConfig.ModConfigEvent>> configOpt = ObfuscationReflectionHelper.getPrivateValue(ModContainer.class, container, "configHandler");
|
Optional<Consumer<ModConfig.ModConfigEvent>> configOpt = ObfuscationReflectionHelper.getPrivateValue(ModContainer.class, container, "configHandler");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user