diff --git a/gradle.properties b/gradle.properties index 114082f38..12ae77d13 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ name=OneConfig mod_id=oneconfig version_major=1 version_minor=0 -version_patch=0-alpha.37 +version_patch=0-alpha.38 polyfrost.defaults.loom=3 diff --git a/modules/config-impl/src/main/java/org/polyfrost/oneconfig/api/config/v1/collect/impl/ReflectiveCollector.java b/modules/config-impl/src/main/java/org/polyfrost/oneconfig/api/config/v1/collect/impl/ReflectiveCollector.java index d4a201f0e..0a65e766c 100644 --- a/modules/config-impl/src/main/java/org/polyfrost/oneconfig/api/config/v1/collect/impl/ReflectiveCollector.java +++ b/modules/config-impl/src/main/java/org/polyfrost/oneconfig/api/config/v1/collect/impl/ReflectiveCollector.java @@ -60,27 +60,29 @@ public ReflectiveCollector(int maxDepth) { public void handle(@NotNull Tree tree, @NotNull Object src, int depth) { - for (Field f : src.getClass().getDeclaredFields()) { + Class cls = src.getClass(); + for (Field f : cls.getDeclaredFields()) { handleField(f, src, tree); } - for (Method m : src.getClass().getDeclaredMethods()) { + for (Method m : cls.getDeclaredMethods()) { handleMethod(m, src, tree); } - Class superClass = src.getClass().getSuperclass(); - if (superClass != null) { + Class superClass = cls.getSuperclass(); + while (superClass != null) { for (Field f : superClass.getDeclaredFields()) { handleField(f, src, tree); } for (Method m : superClass.getDeclaredMethods()) { handleMethod(m, src, tree); } + superClass = superClass.getSuperclass(); } - for (Class c : src.getClass().getDeclaredClasses()) { + for (Class sub : cls.getDeclaredClasses()) { if (depth >= maxDepth) { LOGGER.warn("Reached max depth for tree {} ignoring further subclasses!", tree.getID()); return; } - handleInnerClass(c, src, depth + 1, tree); + handleInnerClass(sub, src, depth + 1, tree); } } }