diff options
author | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
---|---|---|
committer | Johann Bernhardt <johann.bernhardt@tum.de> | 2021-12-12 19:38:06 +0100 |
commit | 311ab89f93558233a40079f7cb16605b141b5346 (patch) | |
tree | c5f44ef47f441a57c5f57aa801f639c7879ed760 /src/main/java/gtPlusPlus/plugin/manager | |
parent | 896143b96132f5ac54aa8d8f7386f27487e5e530 (diff) | |
download | GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.gz GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.tar.bz2 GT5-Unofficial-311ab89f93558233a40079f7cb16605b141b5346.zip |
Move sources and resources
Diffstat (limited to 'src/main/java/gtPlusPlus/plugin/manager')
-rw-r--r-- | src/main/java/gtPlusPlus/plugin/manager/Core_Manager.java | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/plugin/manager/Core_Manager.java b/src/main/java/gtPlusPlus/plugin/manager/Core_Manager.java new file mode 100644 index 0000000000..45e85d68ac --- /dev/null +++ b/src/main/java/gtPlusPlus/plugin/manager/Core_Manager.java @@ -0,0 +1,110 @@ +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>(); + + /** + * @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) { + if (h.preInit()) { + Logger.INFO("[Plugin] Completed Pre-Init Phase for "+h.getPluginName()+"."); + } + else { + Logger.INFO("[Plugin] Failed during Pre-Init Phase for "+h.getPluginName()+"."); + } + } + return true; + } + catch (Throwable t) {} + return false; + } + + public static boolean init() { + try { + for (IPlugin h : mPlugins) { + if (h.init()) { + Logger.INFO("[Plugin] Completed Init Phase for "+h.getPluginName()+"."); + } + else { + Logger.INFO("[Plugin] Failed during Init Phase for "+h.getPluginName()+"."); + } + } + return true; + } + catch (Throwable t) {} + return false; + } + + public static boolean postInit() { + try { + for (IPlugin h : mPlugins) { + if (h.postInit()) { + Logger.INFO("[Plugin] Completed Post-Init Phase for "+h.getPluginName()+"."); + } + else { + Logger.INFO("[Plugin] Failed during Post-Init Phase for "+h.getPluginName()+"."); + } + } + return true; + } + catch (Throwable t) {} + return false; + } + + public static boolean serverStart() { + try { + for (IPlugin h : mPlugins) { + if (h.serverStart()) { + Logger.INFO("[Plugin] Completed Server Start Phase for "+h.getPluginName()+"."); + } + else { + Logger.INFO("[Plugin] Failed during Server Start Phase for "+h.getPluginName()+"."); + } + } + return true; + } + catch (Throwable t) {} + return false; + } + + public static boolean serverStop() { + try { + for (IPlugin h : mPlugins) { + if (h.serverStop()) { + Logger.INFO("[Plugin] Completed Server Stop Phase for "+h.getPluginName()+"."); + } + else { + Logger.INFO("[Plugin] Failed during Server Stop Phase for "+h.getPluginName()+"."); + } + } + return true; + } + catch (Throwable t) {} + return false; + } + + +} |