diff --git a/leaf-server/src/main/java/org/dreeam/leaf/config/ConfigModules.java b/leaf-server/src/main/java/org/dreeam/leaf/config/ConfigModules.java index 5c9939df..032e3810 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/config/ConfigModules.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/config/ConfigModules.java @@ -23,6 +23,7 @@ public abstract class ConfigModules extends LeafConfig { public static void initModules() throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException { List enabledExperimentalModules = new ArrayList<>(); + for (Class clazz : LeafConfig.getClasses(LeafConfig.I_CONFIG_PKG)) { ConfigModules module = (ConfigModules) clazz.getConstructor().newInstance(); module.onLoaded(); @@ -35,6 +36,7 @@ public abstract class ConfigModules extends LeafConfig { } } } + if (!enabledExperimentalModules.isEmpty()) { LeafConfig.LOGGER.warn("You have following experimental module(s) enabled: {}, please proceed with caution!", enabledExperimentalModules.stream().map(f -> f.getDeclaringClass().getSimpleName() + "." + f.getName()).toList()); } @@ -42,12 +44,14 @@ public abstract class ConfigModules extends LeafConfig { private static List getAnnotatedStaticFields(Class clazz, Class annotation) { List fields = new ArrayList<>(); + for (Field field : clazz.getDeclaredFields()) { if (field.isAnnotationPresent(annotation) && Modifier.isStatic(field.getModifiers())) { field.setAccessible(true); fields.add(field); } } + return fields; } diff --git a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/async/AsyncPlayerDataSave.java b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/async/AsyncPlayerDataSave.java index 54278dda..96c5ad15 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/async/AsyncPlayerDataSave.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/async/AsyncPlayerDataSave.java @@ -23,6 +23,6 @@ public class AsyncPlayerDataSave extends ConfigModules { **实验性功能, 在部分场景下可能丢失玩家数据!** 异步保存玩家数据."""); - enabled = config().getBoolean(getBasePath() + ".enabled", enabled); + enabled = config.getBoolean(getBasePath() + ".enabled", enabled); } } diff --git a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/RegionFormatConfig.java b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/RegionFormatConfig.java index 1bcf8402..756d6723 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/RegionFormatConfig.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/RegionFormatConfig.java @@ -44,7 +44,7 @@ public class RegionFormatConfig extends ConfigModules { "Available region formats: MCA, LINEAR", "可用格式: MCA, LINEAR")); linearCompressionLevel = config.getInt(getBasePath() + ".linear-compress-level", linearCompressionLevel); - throwOnUnknownExtension = config().getBoolean(getBasePath() + ".throw-on-unknown-extension-detected", throwOnUnknownExtension); + throwOnUnknownExtension = config.getBoolean(getBasePath() + ".throw-on-unknown-extension-detected", throwOnUnknownExtension); linearFlushFrequency = config.getInt(getBasePath() + ".flush-interval-seconds", linearFlushFrequency); regionFormatType = EnumRegionFileExtension.fromName(regionFormatTypeName); diff --git a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/opt/SkipAIForNonAwareMob.java b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/opt/SkipAIForNonAwareMob.java index f97ca316..dc4add38 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/opt/SkipAIForNonAwareMob.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/opt/SkipAIForNonAwareMob.java @@ -13,6 +13,6 @@ public class SkipAIForNonAwareMob extends ConfigModules { @Override public void onLoaded() { - enabled = config().getBoolean(getBasePath() + ".skip-ai-for-non-aware-mob", enabled); + enabled = config.getBoolean(getBasePath() + ".skip-ai-for-non-aware-mob", enabled); } }