示例#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();
            }
        }