package io.gitlab.jfronny.libjf; import io.gitlab.jfronny.commons.log.Level; import io.gitlab.jfronny.commons.log.Logger; import io.gitlab.jfronny.commons.log.slf4j.SLF4JLogger; import io.gitlab.jfronny.commons.serialize.gson.api.v1.GsonHolders; import io.gitlab.jfronny.libjf.gson.GsonAdapter; import io.gitlab.jfronny.libjf.gson.HiddenAnnotationExclusionStrategy; import net.fabricmc.api.ModInitializer; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.entrypoint.EntrypointContainer; import net.fabricmc.loader.api.metadata.ModMetadata; public class LibJf implements ModInitializer { public static final String MOD_ID = "libjf"; public static final Logger LOGGER = Logger.forName(MOD_ID); static { //TODO remove all uses of this from dependents, then remove this GsonHolders.modifyBuilder(builder -> { for (EntrypointContainer container : FabricLoader.getInstance().getEntrypointContainers(MOD_ID + ":gson_adapter", GsonAdapter.class)) { ModMetadata meta = container.getProvider().getMetadata(); LOGGER.warn("Mod " + meta.getName() + " (" + meta.getId() + ") uses the now deprecated libjf:gson_adapter. Please update!"); container.getEntrypoint().apply(builder); } }); HiddenAnnotationExclusionStrategy.register(); GsonHolders.registerSerializer(); } @Override public void onInitialize() { Logger.registerFactory(SLF4JLogger::new); Logger.setMinimumLevel(FabricLoader.getInstance().isDevelopmentEnvironment() ? Level.TRACE : Level.INFO); } }