public void InitializePlugin(PluginInfo Plugin)
        {
            if (Plugin == null)
            {
                return;
            }
            mainLog.Warn(string.Format(Program.Localization.Sentences["InitializingPlugin"], Plugin.Assembly.GetName().Name));
            bool PluginInitialized = false;

            try
            {
                if (Plugin.MainClass == null)
                {
                    Plugin.MainClass = (PluginBase)Activator.CreateInstance(Plugin.MainClassType);
                }

                if (Plugin.MainClass != null)
                {
                    try
                    {
                        SetupTypes(Plugin);

                        ConsoleCommandManager.InitPluginCommands(ConsoleCommandManager.IRSECommandSystem, Plugin);

                        Plugin.MainClass.Init();

                        PluginInitialized = true;
                    }
                    catch (MissingMethodException)
                    {
                        mainLog.Error(string.Format(Program.Localization.Sentences["InitializationPlugin"], Plugin.Assembly.GetName().Name, Plugin.MainClassType.ToString()));
                    }
                    catch (Exception ex)
                    {
                        mainLog.Error(string.Format(Program.Localization.Sentences["FailedInitPlugin"], Plugin.Assembly.GetName().Name, ex.ToString()));
                    }
                }
            }
            catch (Exception ex)
            {
                mainLog.Warn(string.Format(Program.Localization.Sentences["FailedInitPlugin"], Plugin.Assembly.GetName().Name, ex.ToString()));
            }
            m_loadedPlugins.Find(p => p.MainClass.Enabled == PluginInitialized);
        }