diff --git a/common/implementation/src/main/java/com/dfsek/terra/AbstractTerraPlugin.java b/common/implementation/src/main/java/com/dfsek/terra/AbstractTerraPlugin.java index 5bbc04b88..7c75c1642 100644 --- a/common/implementation/src/main/java/com/dfsek/terra/AbstractTerraPlugin.java +++ b/common/implementation/src/main/java/com/dfsek/terra/AbstractTerraPlugin.java @@ -54,18 +54,13 @@ public abstract class AbstractTerraPlugin implements TerraPlugin { private final CommandManager manager = new TerraCommandManager(this); - private final AddonRegistry addonRegistry; + private final AddonRegistry addonRegistry = new AddonRegistry(this); - private final Logger logger; + private final Lazy logger = Lazy.lazy(() -> createLogger()); private static final MutableBoolean LOADED = new MutableBoolean(false); - public AbstractTerraPlugin() { - this.logger = createLogger(); - addonRegistry = getPlatformAddon().map(terraAddon -> new AddonRegistry(terraAddon, this)).orElseGet(() -> new AddonRegistry(this)); - } - protected void load() { if(LOADED.get()) { throw new IllegalStateException("Someone tried to initialize Terra, but Terra has already initialized. This is most likely due to a broken platform implementation, or a misbehaving mod."); @@ -74,6 +69,8 @@ public abstract class AbstractTerraPlugin implements TerraPlugin { logger().info("Initializing Terra..."); + getPlatformAddon().ifPresent(addonRegistry::register); + try(InputStream stream = getClass().getResourceAsStream("/config.yml")) { File configFile = new File(getDataFolder(), "config.yml"); if(!configFile.exists()) { @@ -166,6 +163,6 @@ public abstract class AbstractTerraPlugin implements TerraPlugin { @Override public Logger logger() { - return logger; + return logger.value(); } }