Lortseam 4 ani în urmă
părinte
comite
b6d085b830
1 a modificat fișierele cu 21 adăugiri și 21 ștergeri
  1. 21 21
      src/main/java/me/lortseam/completeconfig/data/EntryMap.java

+ 21 - 21
src/main/java/me/lortseam/completeconfig/data/EntryMap.java

@@ -23,6 +23,27 @@ public class EntryMap extends ConfigMap<Entry> {
     void resolve(ConfigEntryContainer container) {
         List<Entry> containerEntries = new ArrayList<>();
         for (Class<? extends ConfigEntryContainer> clazz : container.getConfigClasses()) {
+            List<Entry> clazzEntries = new ArrayList<>();
+            Arrays.stream(clazz.getDeclaredFields()).filter(field -> {
+                if (clazz != container.getClass() && Modifier.isStatic(field.getModifiers())) {
+                    return false;
+                }
+                if (container.isConfigPOJO()) {
+                    return !ConfigEntryContainer.class.isAssignableFrom(field.getType()) && !field.isAnnotationPresent(ConfigEntry.Ignore.class);
+                }
+                return field.isAnnotationPresent(ConfigEntry.class);
+            }).forEach(field -> {
+                if (Modifier.isFinal(field.getModifiers())) {
+                    throw new IllegalModifierException("Entry field " + field + " must not be final");
+                }
+                if (!field.isAccessible()) {
+                    field.setAccessible(true);
+                }
+                Entry<?> entry = Entry.Draft.of(field, container.getClass()).build(container, translation);
+                entry.resolve(field);
+                clazzEntries.add(entry);
+            });
+            containerEntries.addAll(0, clazzEntries);
             Arrays.stream(clazz.getDeclaredMethods()).filter(method -> !Modifier.isStatic(method.getModifiers()) && method.isAnnotationPresent(ConfigEntryListener.class)).forEach(method -> {
                 ConfigEntryListener listener = method.getDeclaredAnnotation(ConfigEntryListener.class);
                 String fieldName = listener.value();
@@ -51,27 +72,6 @@ public class EntryMap extends ConfigMap<Entry> {
                 }
                 entry.interact(e -> e.addListener(method, container));
             });
-            List<Entry> clazzEntries = new ArrayList<>();
-            Arrays.stream(clazz.getDeclaredFields()).filter(field -> {
-                if (clazz != container.getClass() && Modifier.isStatic(field.getModifiers())) {
-                    return false;
-                }
-                if (container.isConfigPOJO()) {
-                    return !ConfigEntryContainer.class.isAssignableFrom(field.getType()) && !field.isAnnotationPresent(ConfigEntry.Ignore.class);
-                }
-                return field.isAnnotationPresent(ConfigEntry.class);
-            }).forEach(field -> {
-                if (Modifier.isFinal(field.getModifiers())) {
-                    throw new IllegalModifierException("Entry field " + field + " must not be final");
-                }
-                if (!field.isAccessible()) {
-                    field.setAccessible(true);
-                }
-                Entry<?> entry = Entry.Draft.of(field, container.getClass()).build(container, translation);
-                entry.resolve(field);
-                clazzEntries.add(entry);
-            });
-            containerEntries.addAll(0, clazzEntries);
         }
         for (Entry<?> entry : containerEntries) {
             put(entry.getID(), entry);