diff --git a/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackLoadEvent.java b/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackLoadEvent.java index e995c8897..dbabc411e 100644 --- a/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackLoadEvent.java +++ b/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackLoadEvent.java @@ -3,6 +3,7 @@ package com.dfsek.terra.api.event.events.config; import com.dfsek.tectonic.config.ConfigTemplate; import com.dfsek.tectonic.exception.ConfigException; import com.dfsek.terra.api.event.events.PackEvent; +import com.dfsek.terra.config.fileloaders.Loader; import com.dfsek.terra.config.pack.ConfigPack; /** @@ -11,10 +12,12 @@ import com.dfsek.terra.config.pack.ConfigPack; public abstract class ConfigPackLoadEvent implements PackEvent { private final ConfigPack pack; private final ExceptionalConsumer configLoader; + private final Loader loader; - public ConfigPackLoadEvent(ConfigPack pack, ExceptionalConsumer configLoader) { + public ConfigPackLoadEvent(ConfigPack pack, ExceptionalConsumer configLoader, Loader loader) { this.pack = pack; this.configLoader = configLoader; + this.loader = loader; } @Override @@ -34,4 +37,8 @@ public abstract class ConfigPackLoadEvent implements PackEvent { public interface ExceptionalConsumer { void accept(T value) throws ConfigException; } + + public Loader getLoader() { + return loader; + } } diff --git a/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPostLoadEvent.java b/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPostLoadEvent.java index 1398ec219..5832f2f43 100644 --- a/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPostLoadEvent.java +++ b/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPostLoadEvent.java @@ -1,13 +1,14 @@ package com.dfsek.terra.api.event.events.config; import com.dfsek.tectonic.config.ConfigTemplate; +import com.dfsek.terra.config.fileloaders.Loader; import com.dfsek.terra.config.pack.ConfigPack; /** * Called when a config pack has finished loading. */ public class ConfigPackPostLoadEvent extends ConfigPackLoadEvent { - public ConfigPackPostLoadEvent(ConfigPack pack, ExceptionalConsumer loader) { - super(pack, loader); + public ConfigPackPostLoadEvent(ConfigPack pack, ExceptionalConsumer configTemplateLoader, Loader loader) { + super(pack, configTemplateLoader, loader); } } diff --git a/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPreLoadEvent.java b/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPreLoadEvent.java index 1ac2de54d..d9e303a1e 100644 --- a/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPreLoadEvent.java +++ b/common/src/main/java/com/dfsek/terra/api/event/events/config/ConfigPackPreLoadEvent.java @@ -1,14 +1,14 @@ package com.dfsek.terra.api.event.events.config; import com.dfsek.tectonic.config.ConfigTemplate; -import com.dfsek.tectonic.exception.ConfigException; +import com.dfsek.terra.config.fileloaders.Loader; import com.dfsek.terra.config.pack.ConfigPack; /** * Called before a config pack's registries are filled. At this point, the pack manifest has been loaded, and all registries are empty. */ public class ConfigPackPreLoadEvent extends ConfigPackLoadEvent { - public ConfigPackPreLoadEvent(ConfigPack pack, ExceptionalConsumer configLoader) { - super(pack, configLoader); + public ConfigPackPreLoadEvent(ConfigPack pack, ExceptionalConsumer configLoader, Loader loader) { + super(pack, configLoader, loader); } } diff --git a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java index 871b4ebe3..e2f79d0e3 100644 --- a/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java +++ b/common/src/main/java/com/dfsek/terra/config/pack/ConfigPack.java @@ -138,7 +138,7 @@ public class ConfigPack implements LoaderRegistrar { main.logger().info("Loading config pack \"" + template.getID() + "\""); - main.getEventManager().callEvent(new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration))); + main.getEventManager().callEvent(new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration), loader)); load(l, main); @@ -185,7 +185,7 @@ public class ConfigPack implements LoaderRegistrar { selfLoader.load(template, configuration); main.logger().info("Loading config pack \"" + template.getID() + "\""); - main.getEventManager().callEvent(new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration))); + main.getEventManager().callEvent(new ConfigPackPreLoadEvent(this, template -> selfLoader.load(template, configuration), loader)); load(l, main); @@ -253,7 +253,7 @@ public class ConfigPack implements LoaderRegistrar { .open("flora", ".yml").then(configs -> buildAll(new FloraFactory(), floraRegistry, abstractConfigLoader.loadConfigs(configs, FloraTemplate::new), main)).close() .open("biomes", ".yml").then(configs -> buildAll(new BiomeFactory(this), biomeRegistry, abstractConfigLoader.loadConfigs(configs, () -> new BiomeTemplate(this, main)), main)).close(); - main.getEventManager().callEvent(new ConfigPackPostLoadEvent(this, template -> selfLoader.load(template, configuration))); + main.getEventManager().callEvent(new ConfigPackPostLoadEvent(this, template -> selfLoader.load(template, configuration), loader)); main.logger().info("Loaded config pack \"" + template.getID() + "\" v" + template.getVersion() + " by " + template.getAuthor() + " in " + (System.nanoTime() - start) / 1000000D + "ms."); }