plugins: fix plugins loading configs from their dependencies

This commit is contained in:
ThatGamerBlue
2020-03-31 18:23:47 +01:00
parent a8e16fdbba
commit f0b762c5f2
2 changed files with 20 additions and 2 deletions

View File

@@ -755,8 +755,11 @@ public class ExternalPluginManager
Class<?> type = key.getTypeLiteral().getRawType();
if (Config.class.isAssignableFrom(type))
{
Config config = (Config) pluginInjector.getInstance(key);
configManager.setDefaultConfiguration(config, false);
if (type.getPackageName().startsWith(plugin.getClass().getPackageName()))
{
Config config = (Config) pluginInjector.getInstance(key);
configManager.setDefaultConfiguration(config, false);
}
}
}
}

View File

@@ -82,6 +82,7 @@ import net.runelite.client.ui.RuneLiteSplashScreen;
import net.runelite.client.util.GameEventManager;
import net.runelite.client.util.Groups;
import org.jgroups.Message;
import org.pf4j.Extension;
@Singleton
@Slf4j
@@ -192,6 +193,20 @@ public class PluginManager
Class<?> type = key.getTypeLiteral().getRawType();
if (Config.class.isAssignableFrom(type))
{
Extension externalDescriptor = plugin.getClass().getAnnotation(Extension.class);
if (externalDescriptor != null)
{
// external
Config config = (Config) injector.getInstance(key);
Class<?> actualClass = config.getClass().getInterfaces()[0];
if (actualClass.getPackageName().startsWith(plugin.getClass().getPackageName()))
{
return config;
}
continue;
}
return (Config) injector.getInstance(key);
}
}