diff options
Diffstat (limited to 'src/Java/gtPlusPlus/plugin/manager')
| -rw-r--r-- | src/Java/gtPlusPlus/plugin/manager/Core_Manager.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/Java/gtPlusPlus/plugin/manager/Core_Manager.java b/src/Java/gtPlusPlus/plugin/manager/Core_Manager.java index 4fd18b4959..4526a43a5b 100644 --- a/src/Java/gtPlusPlus/plugin/manager/Core_Manager.java +++ b/src/Java/gtPlusPlus/plugin/manager/Core_Manager.java @@ -3,15 +3,29 @@ package gtPlusPlus.plugin.manager; import gtPlusPlus.api.interfaces.IPlugin; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; +import gtPlusPlus.core.util.reflect.ReflectionUtils; public class Core_Manager { public static AutoMap<IPlugin> mPlugins = new AutoMap<IPlugin>(); - public static void registerPlugin(IPlugin plug) { - Logger.INFO("[Plugin] " + "Registered "+plug.getPluginName()+"."); - mPlugins.put(plug); + /** + * @param plugin - Dynamically registers the plugin for loading. + */ + public static void registerPlugin(IPlugin plugin) { + Logger.INFO("[Plugin] " + "Registered "+plugin.getPluginName()+"."); + mPlugins.put(plugin); } + + /** + * Dynamically loads all class objects within the "gtPlusPlus.plugin" package. + */ + public static void veryEarlyInit() { + if (ReflectionUtils.dynamicallyLoadClassesInPackage("gtPlusPlus.plugin")) { + Logger.INFO("[Plugin] Plugin System loaded."); + } + } + public static boolean preInit() { try { for (IPlugin h : mPlugins) { |
