Prevent mixin.perf suboptions from defaulting to on if an explicit

option is not added
This commit is contained in:
embeddedt 2023-07-10 19:13:01 -04:00
parent 4ea7b864a8
commit 546d1df48f
No known key found for this signature in database
GPG Key ID: A69433EC199B5613
2 changed files with 13 additions and 2 deletions

View File

@ -97,7 +97,11 @@ public class ModernFixMixinPlugin implements IMixinConfigPlugin {
Option option = instance.config.getEffectiveOptionForMixin(mixin);
if (option == null) {
this.logger.error("No rules matched mixin '{}', treating as foreign and disabling!", mixin);
String msg = "No rules matched mixin '{}', treating as foreign and disabling!";
if(ModernFixPlatformHooks.isDevEnv())
this.logger.error(msg, mixin);
else
this.logger.debug(msg, mixin);
return false;
}

View File

@ -128,10 +128,17 @@ public class ModernFixEarlyConfig {
List<String> mixinOptionNames = dotSplitter.splitToList(mixinClassName);
StringBuilder optionBuilder = new StringBuilder(mixinClassName.length());
optionBuilder.append("mixin");
// mixin.core, mixin.safety can be top-level, everything else must have a subcategory
boolean allowTopLevel;
if(mixinOptionNames.size() > 0)
allowTopLevel = mixinOptionNames.get(0).equals("core") || mixinOptionNames.get(0).equals("safety");
else
allowTopLevel = false;
for(int i = 0; i < mixinOptionNames.size() - 1; i++) {
optionBuilder.append('.');
optionBuilder.append(mixinOptionNames.get(i));
mixinOptions.add(optionBuilder.toString());
if(i > 0 || allowTopLevel)
mixinOptions.add(optionBuilder.toString());
}
}
} catch(IOException e) {