Merge pull request #252 from tylerthardy/dynamicFix

Fix default config for dynamic plugins
This commit is contained in:
Adam
2017-12-13 11:33:05 -05:00
committed by GitHub
2 changed files with 20 additions and 1 deletions

View File

@@ -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);

View File

@@ -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);