示例#1
0
 private void LoadCQP()
 {
     if (CQPluginLoader.LoadLibrary("CQP.dll").ToInt32() == 0)
     {
         MessageBox.Show("未能找到 CQP.dll ,调试器运行将出现未预期的错误。");
     }
 }
示例#2
0
        private void LoadPlugins()
        {
            var pluginDir = Environment.CurrentDirectory + "\\dev";

            if (!Directory.Exists(pluginDir))
            {
                Directory.CreateDirectory(pluginDir);
                AddLog(CQLogLevel.Warning, DebugerLogCategory, "请将需要调试的插件放到 " + pluginDir + " 目录下,并保证dll和json文件具有相同的名称。");
            }

            foreach (var pluginPath in Directory.GetDirectories(pluginDir))
            {
                var plugin = CQPluginLoader.LoadPlugin(pluginPath + "\\");

                var dirName = pluginPath.Substring(pluginPath.LastIndexOf("\\", StringComparison.Ordinal) + 1);

                if (plugin.appId != dirName)
                {
                    AddLog(CQLogLevel.Warning, DebugerLogCategory, "插件ID \"" + plugin.appId + "\" 与其所在文件夹名不相符, 文件夹名为 \"" + dirName + "\"");
                    continue;
                }
                AppInfo             += plugin.appInfo;
                Initialize          += plugin.initialize;
                PluginEnable        += plugin.pluginEnable;
                PluginDisable       += plugin.pluginDisable;
                CQStart             += plugin.cqStart;
                CQExit              += plugin.cqExit;
                PrivateMsg          += plugin.privateMsg;
                GroupMsg            += plugin.groupMsg;
                DiscussMsg          += plugin.discussMsg;
                GroupUpload         += plugin.groupUpload;
                GroupAdmin          += plugin.groupAdmin;
                GroupMemberDecrease += plugin.groupMemberDecrease;
                GroupMemberIncrease += plugin.groupMemberIncrease;
                FriendAdd           += plugin.friendAdd;
                AddFriendRequest    += plugin.addFriendRequest;
                AddGroupRequest     += plugin.addGroupRequest;

                Initialize?.Invoke(plugin.authCode);
            }
        }