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); }
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); }