diff --git a/src/main/java/carpet/settings/ParsedRule.java b/src/main/java/carpet/settings/ParsedRule.java index 28b3ddf8..b02bfec5 100644 --- a/src/main/java/carpet/settings/ParsedRule.java +++ b/src/main/java/carpet/settings/ParsedRule.java @@ -149,12 +149,12 @@ public final class ParsedRule implements CarpetRule, Comparable ParsedRule of(Field field, SettingsManager settingsManager) { RuleAnnotation rule; - if (settingsManager instanceof carpet.settings.SettingsManager && field.isAnnotationPresent(Rule.class)) { // Legacy path - Rule a = field.getAnnotation(Rule.class); - rule = new RuleAnnotation(true, a.name(), a.desc(), a.extra(), a.category(), a.options(), a.strict(), a.appSource(), a.validate()); - } else if (field.isAnnotationPresent(carpet.api.settings.Rule.class)) { + if (field.isAnnotationPresent(carpet.api.settings.Rule.class)) { carpet.api.settings.Rule a = field.getAnnotation(carpet.api.settings.Rule.class); rule = new RuleAnnotation(false, null, null, null, a.categories(), a.options(), a.strict(), a.appSource(), a.validators()); + } else if (settingsManager instanceof carpet.settings.SettingsManager && field.isAnnotationPresent(Rule.class)) { // Legacy path + Rule a = field.getAnnotation(Rule.class); + rule = new RuleAnnotation(true, a.name(), a.desc(), a.extra(), a.category(), a.options(), a.strict(), a.appSource(), a.validate()); } else { // Don't allow to use old rule types in custom AND migrated settings manager throw new IllegalArgumentException("Old rule annotation is only supported in legacy SettngsManager!");