コード例 #1
0
ファイル: PluginManager.cs プロジェクト: CloudTheWolf/Smod2
 public void EnablePlugin(Plugin plugin)
 {
     plugin.Info("Enabling plugin " + plugin.Details.name + " " + plugin.Details.version);
     ConfigManager.Manager.RegisterPlugin(plugin);
     plugin.Register();
     plugin.OnEnable();
     enabledPlugins.Add(plugin.Details.id, plugin);
 }
コード例 #2
0
        public void EnablePlugin(Plugin plugin)
        {
            if (enabledPlugins.ContainsValue(plugin))
            {
                return;
            }

            if (plugin.Details == null)
            {
                Manager.Logger.Error("PLUGIN_MANAGER", "Somehow one of the plugins Details is null. Skipping...");
                return;
            }

            Manager.Logger.Info("PLUGIN_MANAGER", "Enabling plugin " + plugin.Details.name + " " + plugin.Details.version);

            Manager.Logger.Debug("PLUGIN_MANAGER", "Registering pipe exports");
            if (!PipeManager.Manager.IsRegistered(plugin))
            {
                PipeManager.Manager.RegisterPlugin(plugin);                                                        // In case it got disabled
            }
            Manager.Logger.Debug("PLUGIN_MANAGER", "Registering pipe imports");
            PipeManager.Manager.RegisterLinks(plugin);
            Manager.Logger.Debug("PLUGIN_MANAGER", "Registering configs");
            if (!ConfigManager.Manager.IsRegistered(plugin))
            {
                ConfigManager.Manager.RegisterPlugin(plugin);
            }
            Manager.Logger.Debug("PLUGIN_MANAGER", "Registering langs");
            LangManager.Manager.RegisterPlugin(plugin);
            Manager.Logger.Debug("PLUGIN_MANAGER", "Loading event snapshot");
            EventManager.Manager.AddSnapshotEventHandlers(plugin);

            Manager.Logger.Debug("PLUGIN_MANAGER", "Loading command snapshot");

            CommandManager.ReregisterPlugin(plugin);

            Manager.Logger.Debug("PLUGIN_MANAGER", "Invoking OnEnable");
            plugin.OnEnable();

            Manager.Logger.Debug("PLUGIN_MANAGER", "Altering dictionaries");
            disabledPlugins.Remove(plugin.Details.id);
            enabledPlugins.Add(plugin.Details.id, plugin);

            Manager.Logger.Info("PLUGIN_MANAGER", "Enabled plugin  " + plugin.Details.name + " " + plugin.Details.version);
        }