From cdbf234d91025d31cae0756ce93fcb51b362485c Mon Sep 17 00:00:00 2001 From: JFronny <33260128+JFronny@users.noreply.github.com> Date: Thu, 24 Sep 2020 22:45:20 +0200 Subject: [PATCH] Prevent accessing Cfg from mixin before init by initializing in static{} --- .../java/io/gitlab/jfronny/dynres/DynRes.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/main/java/io/gitlab/jfronny/dynres/DynRes.java b/src/main/java/io/gitlab/jfronny/dynres/DynRes.java index 9116fdd..cceb829 100644 --- a/src/main/java/io/gitlab/jfronny/dynres/DynRes.java +++ b/src/main/java/io/gitlab/jfronny/dynres/DynRes.java @@ -18,23 +18,22 @@ public class DynRes implements LibWebInit { public static File resFile; public static Cfg cfg; public static String resourceLink = ""; - private static boolean initialized = false; + + static { + AutoConfig.register(Cfg.class, JanksonConfigSerializer::new); + cfg = AutoConfig.getConfigHolder(Cfg.class).getConfig(); + resFile = new File(FabricLoader.getInstance().getGameDir().toFile(), cfg.resourcesFile); + if (!resFile.isFile()) { + FabricGuiEntry.displayCriticalError(new FileNotFoundException("The file " + resFile + " does not exist in the game directory but is required"), true); + } + } @Override public void register(LibWebAPI api) { if (FabricLoader.getInstance().getEnvironmentType() == EnvType.SERVER) { try { - if (!initialized) { - initialized = true; - AutoConfig.register(Cfg.class, JanksonConfigSerializer::new); - cfg = AutoConfig.getConfigHolder(Cfg.class).getConfig(); - resFile = new File(FabricLoader.getInstance().getGameDir().toFile(), cfg.resourcesFile); - if (!resFile.isFile()) { - FabricGuiEntry.displayCriticalError(new FileNotFoundException("The file " + resFile + " does not exist in the game directory but is required"), true); - } - Logger.l.info("Initialized DynRes"); - } resourceLink = api.registerFile("/resources.zip", resFile.toPath(), !cfg.hashResources); + Logger.l.info("Initialized DynRes /resources.zip"); } catch (IOException e) { e.printStackTrace(); }