public void DisablePlugin(Plugin plugin) { if (disabledPlugins.ContainsValue(plugin)) { return; } Manager.Logger.Info("PLUGIN_MANAGER", "Disabling plugin " + plugin.Details.name + " " + plugin.Details.version); Manager.Logger.Debug("PLUGIN_MANAGER", "Altering dictionaries"); enabledPlugins.Remove(plugin.Details.id); disabledPlugins.Add(plugin.Details.id, plugin); Manager.Logger.Debug("PLUGIN_MANAGER", "Invoking OnDisable"); plugin.OnDisable(); Manager.Logger.Debug("PLUGIN_MANAGER", "Unloading commands"); CommandManager.UnregisterCommands(plugin); Manager.Logger.Debug("PLUGIN_MANAGER", "Unloading event handlers"); EventManager.Manager.RemoveEventHandlers(plugin); Manager.Logger.Debug("PLUGIN_MANAGER", "Unloading configs"); ConfigManager.Manager.UnloadPlugin(plugin); Manager.Logger.Debug("PLUGIN_MANAGER", "Unloading translations"); LangManager.Manager.UnregisterPlugin(plugin); Manager.Logger.Debug("PLUGIN_MANAGER", "Unloading pipe imports/exports"); PipeManager.Manager.UnregisterPlugin(plugin); Manager.Logger.Info("PLUGIN_MANAGER", "Disabled plugin " + plugin.Details.name + " " + plugin.Details.version); }
public void DisablePlugin(Plugin plugin) { plugin.OnDisable(); EventManager.Manager.RemoveEventHandlers(plugin); CommandManager.UnregisterCommands(plugin); disabledPlugins.Add(plugin.Details.id, plugin); ConfigManager.Manager.UnloadPlugin(plugin); }