Skip to content

Commit

Permalink
no need to keep looking for annotation if @RequiresXRestart has alrea…
Browse files Browse the repository at this point in the history
…dy been found
  • Loading branch information
Lyfts committed Sep 4, 2024
1 parent 0947225 commit 2564782
Showing 1 changed file with 18 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,10 @@ private static void processSubCategory(Object instance, Configuration config, Fi

subCat.setComment(comment);
subCat.setLanguageKey(langKey);
if (subCategoryField.isAnnotationPresent(Config.RequiresMcRestart.class)
|| getClassOrBaseAnnotation(subCategoryField.getDeclaringClass(), Config.RequiresMcRestart.class)
!= null) {
if (subCategoryField.isAnnotationPresent(Config.RequiresMcRestart.class)) {
subCat.setRequiresMcRestart(true);
}
if (subCategoryField.isAnnotationPresent(Config.RequiresWorldRestart.class)
|| getClassOrBaseAnnotation(subCategoryField.getDeclaringClass(), Config.RequiresWorldRestart.class)
!= null) {
if (subCategoryField.isAnnotationPresent(Config.RequiresWorldRestart.class)) {
subCat.setRequiresWorldRestart(true);
}

Expand All @@ -168,8 +164,11 @@ private static void processConfigInternal(Class<?> configClass, String category,
@Nullable Object instance) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException,
NoSuchFieldException, ConfigException {
boolean foundCategory = !category.isEmpty();
boolean requiresMcRestart = configClass.isAnnotationPresent(Config.RequiresMcRestart.class);
boolean requiresWorldRestart = configClass.isAnnotationPresent(Config.RequiresWorldRestart.class);
ConfigCategory cat = foundCategory ? rawConfig.getCategory(category) : null;
boolean requiresMcRestart = getClassOrBaseAnnotation(configClass, Config.RequiresMcRestart.class) != null
|| foundCategory && cat.requiresMcRestart();
boolean requiresWorldRestart = getClassOrBaseAnnotation(configClass, Config.RequiresWorldRestart.class) != null
|| foundCategory && cat.requiresWorldRestart();

for (val field : configClass.getDeclaredFields()) {
if (instance != null && Modifier.isStatic(field.getModifiers())) {
Expand Down Expand Up @@ -204,33 +203,37 @@ private static void processConfigInternal(Class<?> configClass, String category,

if (category.isEmpty()) continue;

val fieldName = ConfigFieldParser.getFieldName(field);
val langKey = getLangKey(
configClass,
field.getAnnotation(Config.LangKey.class),
fieldName,
ConfigFieldParser.getFieldName(field),
category,
false);
ConfigFieldParser.loadField(instance, field, rawConfig, category, langKey);

requiresMcRestart |= field.isAnnotationPresent(Config.RequiresMcRestart.class);
requiresWorldRestart |= field.isAnnotationPresent(Config.RequiresWorldRestart.class);
if (!requiresMcRestart) {
requiresMcRestart = field.isAnnotationPresent(Config.RequiresMcRestart.class);
}

if (!requiresWorldRestart) {
requiresWorldRestart = field.isAnnotationPresent(Config.RequiresWorldRestart.class);
}
}

if (!foundCategory) {
throw new ConfigException("No category found for config class " + configClass.getName() + "!");
}

val cat = rawConfig.getCategory(category);
if (cat == null) cat = rawConfig.getCategory(category);
val langKey = getLangKey(
configClass,
configClass.getAnnotation(Config.LangKey.class),
null,
cat.getName(),
true);
cat.setLanguageKey(langKey);
if (requiresMcRestart) cat.setRequiresMcRestart(true);
if (requiresWorldRestart) cat.setRequiresWorldRestart(true);
cat.setRequiresMcRestart(requiresMcRestart);
cat.setRequiresWorldRestart(requiresWorldRestart);
}

/**
Expand Down

0 comments on commit 2564782

Please sign in to comment.