diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index 7fa6a0db0f..5ffb1dff89 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -352,7 +352,7 @@ public class ConfigManager * Initialize the configuration from the default settings * @param proxy */ - private void setDefaultConfiguration(Object proxy) + public void setDefaultConfiguration(Object proxy) { Class clazz = proxy.getClass().getInterfaces()[0]; ConfigGroup group = clazz.getAnnotation(ConfigGroup.class); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginWatcher.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginWatcher.java index 7c3a82ec9b..75f3ed1d86 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginWatcher.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginWatcher.java @@ -24,6 +24,8 @@ */ package net.runelite.client.plugins; +import com.google.inject.Injector; +import com.google.inject.Key; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -41,6 +43,8 @@ import javax.inject.Inject; import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.client.RuneLite; +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigManager; import net.runelite.client.config.RuneliteConfig; @Singleton @@ -54,6 +58,9 @@ public class PluginWatcher extends Thread private final WatchService watchService; private final WatchKey watchKey; + @Inject + private ConfigManager configManager; + @Inject public PluginWatcher(RuneliteConfig runeliteConfig, PluginManager pluginManager) throws IOException { @@ -208,6 +215,18 @@ public class PluginWatcher extends Thread plugin.file = pluginFile; plugin.loader = loader; + // Initialize default configuration + Injector injector = plugin.getInjector(); + for (Key key : injector.getAllBindings().keySet()) + { + Class type = key.getTypeLiteral().getRawType(); + if (Config.class.isAssignableFrom(type)) + { + Config config = (Config) injector.getInstance(key); + configManager.setDefaultConfiguration(config); + } + } + try { pluginManager.startPlugin(plugin);