Merge pull request #2472 from ThatGamerBlue/menuoptions-oprs

plugins: fix plugins loading configs from their dependencies
This commit is contained in:
ThatGamerBlue
2020-04-01 21:50:20 +01:00
committed by GitHub
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);
}
}