aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/plugin/manager
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/plugin/manager')
-rw-r--r--src/Java/gtPlusPlus/plugin/manager/Core_Manager.java20
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) {