plugins: fix plugins loading configs from their dependencies
This commit is contained in:
@@ -755,8 +755,11 @@ public class ExternalPluginManager
|
|||||||
Class<?> type = key.getTypeLiteral().getRawType();
|
Class<?> type = key.getTypeLiteral().getRawType();
|
||||||
if (Config.class.isAssignableFrom(type))
|
if (Config.class.isAssignableFrom(type))
|
||||||
{
|
{
|
||||||
Config config = (Config) pluginInjector.getInstance(key);
|
if (type.getPackageName().startsWith(plugin.getClass().getPackageName()))
|
||||||
configManager.setDefaultConfiguration(config, false);
|
{
|
||||||
|
Config config = (Config) pluginInjector.getInstance(key);
|
||||||
|
configManager.setDefaultConfiguration(config, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ import net.runelite.client.ui.RuneLiteSplashScreen;
|
|||||||
import net.runelite.client.util.GameEventManager;
|
import net.runelite.client.util.GameEventManager;
|
||||||
import net.runelite.client.util.Groups;
|
import net.runelite.client.util.Groups;
|
||||||
import org.jgroups.Message;
|
import org.jgroups.Message;
|
||||||
|
import org.pf4j.Extension;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -192,6 +193,20 @@ public class PluginManager
|
|||||||
Class<?> type = key.getTypeLiteral().getRawType();
|
Class<?> type = key.getTypeLiteral().getRawType();
|
||||||
if (Config.class.isAssignableFrom(type))
|
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);
|
return (Config) injector.getInstance(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user