From 712f059ba56c9d30cf726361239d88a9857216df Mon Sep 17 00:00:00 2001 From: JFronny Date: Tue, 13 Dec 2022 20:36:11 +0100 Subject: [PATCH] Explicitly initialize LibJF from other preLaunch entrypoints --- .../src/main/java/io/gitlab/jfronny/libjf/LibJf.java | 10 +++++++++- .../libjf/config/impl/entrypoint/JfConfigSafe.java | 2 ++ .../impl/reflect/entrypoint/JfConfigReflectSafe.java | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libjf-base/src/main/java/io/gitlab/jfronny/libjf/LibJf.java b/libjf-base/src/main/java/io/gitlab/jfronny/libjf/LibJf.java index 65c6ab5..052bd95 100644 --- a/libjf-base/src/main/java/io/gitlab/jfronny/libjf/LibJf.java +++ b/libjf-base/src/main/java/io/gitlab/jfronny/libjf/LibJf.java @@ -20,6 +20,14 @@ public class LibJf implements PreLaunchEntrypoint { @Override public void onPreLaunch() { - Logger.registerFactory(SLF4JLogger::new); + setup(); + } + + private static boolean setup = false; + public static void setup() { + if (!setup) { + setup = true; + Logger.registerFactory(SLF4JLogger::new); + } } } diff --git a/libjf-config-core-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/entrypoint/JfConfigSafe.java b/libjf-config-core-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/entrypoint/JfConfigSafe.java index 69a3831..8bbcf39 100644 --- a/libjf-config-core-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/entrypoint/JfConfigSafe.java +++ b/libjf-config-core-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/entrypoint/JfConfigSafe.java @@ -1,5 +1,6 @@ package io.gitlab.jfronny.libjf.config.impl.entrypoint; +import io.gitlab.jfronny.libjf.LibJf; import io.gitlab.jfronny.libjf.config.api.v1.JfCustomConfig; import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL; import io.gitlab.jfronny.libjf.config.impl.ConfigHolderImpl; @@ -17,6 +18,7 @@ public class JfConfigSafe implements PreLaunchEntrypoint { public static final Set REGISTERED_MODS = new HashSet<>(); @Override public void onPreLaunch() { + LibJf.setup(); for (EntrypointContainer custom : FabricLoader.getInstance().getEntrypointContainers(ConfigHolderImpl.MODULE_ID, Object.class)) { if (!REGISTERED_MODS.contains(custom.getProvider().getMetadata().getId()) && custom.getEntrypoint() instanceof JfCustomConfig cfg) { REGISTERED_MODS.add(custom.getProvider().getMetadata().getId()); diff --git a/libjf-config-reflect-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/reflect/entrypoint/JfConfigReflectSafe.java b/libjf-config-reflect-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/reflect/entrypoint/JfConfigReflectSafe.java index 14d129a..5539637 100644 --- a/libjf-config-reflect-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/reflect/entrypoint/JfConfigReflectSafe.java +++ b/libjf-config-reflect-v1/src/main/java/io/gitlab/jfronny/libjf/config/impl/reflect/entrypoint/JfConfigReflectSafe.java @@ -6,7 +6,6 @@ import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL; import io.gitlab.jfronny.libjf.config.api.v1.reflect.ReflectiveConfigBuilder; import io.gitlab.jfronny.libjf.config.impl.ConfigHolderImpl; import io.gitlab.jfronny.libjf.config.impl.entrypoint.JfConfigSafe; -import io.gitlab.jfronny.libjf.config.impl.reflect.ReflectiveConfigBuilderImpl; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.entrypoint.EntrypointContainer; import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; @@ -14,6 +13,7 @@ import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; public class JfConfigReflectSafe implements PreLaunchEntrypoint { @Override public void onPreLaunch() { + LibJf.setup(); for (EntrypointContainer config : FabricLoader.getInstance().getEntrypointContainers(ConfigHolderImpl.MODULE_ID, Object.class)) { registerIfMissing(config.getProvider().getMetadata().getId(), config.getEntrypoint()); }