예제 #1
0
        public void Close()
        {
            m_client.Close();

            m_cmdTranslator.Dispose();
            m_cmdTranslator = null;

            foreach (ProfilePluginConfiguration config in m_activePlugins.Keys)
            {
                IJinxBotPlugin     plugin = m_activePlugins[config];
                IMultiClientPlugin mcp    = plugin as IMultiClientPlugin;
                if (mcp != null)
                {
                    mcp.RemoveClient(this);
                }

                ISingleClientPlugin scp = plugin as ISingleClientPlugin;
                if (scp != null)
                {
                    scp.UnregisterEvents(this);
                    scp.DestroyPluginWindows(this.ProfileDocument);
                }

                PluginFactory.ClosePluginInstance(config, plugin);

                JinxBotConfiguration.Instance.Save();
            }
        }
예제 #2
0
        public void Close()
        {
            while (m_clientPlugins.Count > 0)
            {
                ISingleClientPlugin plugin = m_clientPlugins[0];
                plugin.DestroyPluginWindows(m_view);

                if (m_clientPluginSettings.ContainsKey(plugin))
                {
                    Dictionary <string, string> settings = m_clientPluginSettings[plugin];
                    plugin.Shutdown(settings);
                }
            }
        }