这大概是我一年以前的提出的构思,然后搭建了框架(框架完成度百分之60)。当时看到无论是酷Q还是MYPCQQ制作插件虽然简单,但还不能够让一部分人随心所欲的做自己想要的插件。所以我做了喵喵后还是觉得不够完美,所以提出一个构思让更加小白的人也能做机器人插件。理论上是可行的。我做一个中间组件,理论上也负责群管这方面,娱乐交给第三方来做。我提供娱乐模块和SDK进行开发中间组件的应用。后来因为事情没法进行完善,就是搭建了框架。如感兴趣看上了这个构思可以下载来进行完成。框架是通用的,可以自行按照要求进行改变。
.版本 2 .程序集 框架基础架构 .程序集变量 当前运行目录, 文本型 .子程序 框架_初始化, 整数型, , 首次或其他初始化 当前运行目录 = 取运行目录 () + “\” 框架_目录列出 () 框架_文件输出 () 处理事件 () 框架_返回文本账号载入 () 模块_输出日志 (“system 初始化完成”, 3) 返回 (1) .子程序 框架_目录列出, 整数型, , 列出所有目录 模块_输出日志 (“当前运行:” + 当前运行目录, 3) .如果真 (文件是否存在 (当前运行目录 + “system”) ≠ 真) ' 列出总目录且检测是否存在 如存在进入自检部分 .如果真 (创建目录 (当前运行目录 + “system”) = 真) ' 创建模块组件的总目录 模块_输出日志 (“system 创建成功”, 3) .判断开始 (创建目录 (当前运行目录 + “system\Plugin”) = 真) ' 创建应用目录 模块_输出日志 (“system\Plugin 创建成功”, 3) .默认 模块_输出日志 (“system\Plugin 创建失败”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\set”) = 真) ' 创建配置文件总目录 模块_输出日志 (“system\set 创建成功”, 3) .默认 模块_输出日志 (“system\set 创建失败”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\group”)) 模块_输出日志 (“system\group 创建成功”, 3) .默认 模块_输出日志 (“system\group 创建失败”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\group\xml”)) ' 已分群下的xml目录 模块_输出日志 (“system\group\xml 创建成功”, 3) .默认 模块_输出日志 (“system\group\xml 创建失败”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\set\xml”) = 真) ' 无分群下的xml目录 模块_输出日志 (“system\set\xml 创建成功”, 3) .默认 模块_输出日志 (“system\set\xml 创建失败”, 3) .判断结束 模块_输出日志 (“system 列出完成”, 3) 返回 (1) .如果真结束 模块_输出日志 (“system 列出失败”, 3) 返回 (2) .如果真结束 框架_文件夹自检 () 返回 (1) .子程序 框架_文件输出, 整数型, , 输出一系列的所有运行必备文件 .局部变量 密匙, 文本型, , , 这是一个初始化的中间密匙,如果存在证明已列出成功,如果未存在证明未列出过 密匙 = 读配置项 (当前运行目录 + “system\set\sut.ini”, “set”, “sut”, “0”) .如果真 (密匙 ≠ “kjbabhsdhbsdhsbadaslkdnsajdbsandlskh”) .如果真 (写配置项 (当前运行目录 + “system\set\sut.ini”, “set”, “sut”, “kjbabhsdhbsdhsbadaslkdnsajdbsandlskh”) = 真) ' 输出一个固定密匙 用于检测是否首次初始化 模块_输出日志 (“system\set\sut.ini 写入完成”, 3) .判断开始 (写到文件 (当前运行目录 + “system\set\mmt.ini”, 到字节集 (#临时空数据)) = 真) ' 输出管理配置文件 模块_输出日志 (“system\set\mmt.ini 写入完成”, 3) .默认 模块_输出日志 (“system\set\mmt.ini 写入失败”, 3) .判断结束 .判断开始 (写到文件 (当前运行目录 + “system\dispose.dll”, #dispose) = 真) ' 输出中间组件函数DLL 模块_输出日志 (“system\dispose.dll 写入完成”, 3) .默认 模块_输出日志 (“system\dispose.dll 写入失败”, 3) .判断结束 .判断开始 (写到文件 (当前运行目录 + “system\set\msgs.ini”, 到字节集 (#临时空数据)) = 真) ' 输出模块设置配置文件 模块_输出日志 (“system\set\msgs.ini 写入完成”, 3) .默认 模块_输出日志 (“system\set\msgs.ini 写入失败”, 3) .判断结束 .判断开始 (写到文件 (当前运行目录 + “system\set\group.ini”, 到字节集 (#临时空数据)) = 真) ' 输出群组文本提示配置文件 模块_输出日志 (“system\set\group.ini 写入完成”, 3) .默认 模块_输出日志 (“system\set\group.ini 写入失败”, 3) .判断结束 .判断开始 (写到文件 (当前运行目录 + “system\group\group.ini”, 到字节集 (#临时空数据)) = 真) ' 输出群组分群文本提示配置文件 模块_输出日志 (“system\group\group.ini 写入完成”, 3) .默认 模块_输出日志 (“system\group\group.ini 写入失败”, 3) .判断结束 返回 (1) .如果真结束 模块_输出日志 (“system\set\sut.ini 列出失败”, 3) 返回 (1) .如果真结束 框架_文件自检 () 返回 (1) .子程序 框架_文件夹自检, 整数型, , 首次初始化完成后进入自检 模块_输出日志 (“system 已初始化”, 3) .判断开始 (创建目录 (当前运行目录 + “system\Plugin”) = 真) ' 自检部分 存在返回假 模块_输出日志 (“system\Plugin 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\Plugin 自检完成”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\set”) = 真) ' 自检部分 存在返回假 模块_输出日志 (“system\set 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\set 自检完成”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\group”)) 模块_输出日志 (“system\group 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\group 自检完成”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\group\xml”)) 模块_输出日志 (“system\group\xml 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\group\xml 自检完成”, 3) .判断结束 .判断开始 (创建目录 (当前运行目录 + “system\set\xml”) = 真) ' 自检部分 存在返回假 模块_输出日志 (“system\set\xml 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\set\xml 自检完成”, 3) .判断结束 返回 (1) .子程序 框架_文件自检, 整数型, , 首次初始化完成后进入自检 .判断开始 (文件是否存在 (当前运行目录 + “system\set\mmt.ini”) = 真) ' 不同于创建目录部分 如直接写入只会覆盖 所以只能检测 检测到文件不存在即创建 模块_输出日志 (“system\set\mmt.ini 自检完成”, 3) .默认 .判断开始 (写到文件 (当前运行目录 + “system\set\mmt.ini”, 到字节集 (#临时空数据)) = 真) 模块_输出日志 (“system\set\mmt.ini 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\set\mmt.ini 缺失/恢复错误,检查文件权限”, 3) .判断结束 .判断结束 .判断开始 (文件是否存在 (当前运行目录 + “system\dispose.dll”) = 真) 模块_输出日志 (“system\dispose.dll 自检完成”, 3) .默认 .判断开始 (写到文件 (当前运行目录 + “system\dispose.dll”, #dispose) = 真) 模块_输出日志 (“system\dispose.dll 写入完成”, 3) .默认 模块_输出日志 (“system\dispose.dll 写入失败”, 3) .判断结束 .判断结束 .判断开始 (文件是否存在 (当前运行目录 + “system\set\msgs.ini”) = 真) ' 不同于创建目录部分 如直接写入只会覆盖 所以只能检测 检测到文件不存在即创建 模块_输出日志 (“system\set\msgs.ini 自检完成”, 3) .默认 .判断开始 (写到文件 (当前运行目录 + “system\set\msgs.ini”, 到字节集 (#临时空数据)) = 真) 模块_输出日志 (“system\set\msgs.ini 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\set\msgs.ini 缺失/恢复错误,检查文件权限”, 3) .判断结束 .判断结束 .判断开始 (文件是否存在 (当前运行目录 + “system\set\group.ini”) = 真) ' 不同于创建目录部分 如直接写入只会覆盖 所以只能检测 检测到文件不存在即创建 模块_输出日志 (“system\set\group.ini 自检完成”, 3) .默认 .判断开始 (写到文件 (当前运行目录 + “system\set\group.ini”, 到字节集 (#临时空数据)) = 真) 模块_输出日志 (“system\set\group.ini 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\set\group.ini 缺失/恢复错误,检查文件权限”, 3) .判断结束 .判断结束 .判断开始 (文件是否存在 (当前运行目录 + “system\group\group.ini”) = 真) ' 不同于创建目录部分 如直接写入只会覆盖 所以只能检测 检测到文件不存在即创建 模块_输出日志 (“system\group\group.ini 自检完成”, 3) .默认 .判断开始 (写到文件 (当前运行目录 + “system\group\group.ini”, 到字节集 (#临时空数据)) = 真) 模块_输出日志 (“system\group\group.ini 缺失/已恢复”, 3) .默认 模块_输出日志 (“system\group\group.ini 缺失/恢复错误,检查文件权限”, 3) .判断结束 .判断结束 返回 (1) .子程序 框架_文件更新, , , 更新核心DLL或新增文件 .判断开始 (文件_去扩展名 (当前运行目录 + “system\dispose.dll”) = 真) ' 最开始目的是想要每次启动检测一遍 后改为 接收服务器消息进行检测 .判断开始 (写到文件 (当前运行目录 + “system\dispose.dll”, #dispose) = 真) 文件_删除 (当前运行目录 + “system\dispose”) 模块_输出日志 (“system\dispose.dll 更新完成”, 3) .默认 模块_输出日志 (“system\dispose.dll 更新失败”, 3) .判断结束 .默认 模块_输出日志 (“system\dispose.dll 该文件出现异常,无法更新至最新”, 3) .判断结束 .子程序 框架_返回文本账号载入, , , 返回文本模块载入当前框架下所有在线的账号 .局部变量 账号_, 文本型 .局部变量 i, 整数型 .局部变量 i1, 整数型 .局部变量 账号, 文本型, , "0" 账号_ = 模块_取当前在线QQ () 账号 = 分割文本 (账号_, #换行符, ) .计次循环首 (取数组成员数 (账号), i) .计次循环首 (主窗口.返回文本_账号.取项目数 (), i1) .如果真 (账号 [i] = 主窗口.返回文本_账号.取项目文本 (i1 - 1)) 跳出循环 () .如果真结束 .计次循环尾 () .如果真 (i1 > 主窗口.返回文本_账号.取项目数 ()) 主窗口.返回文本_账号.加入项目 (账号 [i], ) .如果真结束 .计次循环尾 () 模块_输出日志 (“当前在线账号载入完毕”, 2) .子程序 框架_返回文本列出群ID, , , 根据选中账号载入当前选中的账号下群ID .局部变量 JSON文本_ID, 文本型 .局部变量 JSON处理_ID, 文本型 .局部变量 成员_ID, 文本型, , "0" .局部变量 i, 整数型 .局部变量 i1, 整数型 JSON文本_ID = 模块_取群JSON文本 (主窗口.返回文本_账号.取项目文本 (主窗口.返回文本_账号.现行选中项)) JSON处理_ID = 模块_JSON处理_群ID (JSON文本_ID) 成员_ID = 分割文本 (JSON处理_ID, “,”, ) .计次循环首 (取数组成员数 (成员_ID), i) .计次循环首 (主窗口.返回文本_群.取项目数 (), i1) .如果真 (成员_ID [i] = 主窗口.返回文本_群.取项目文本 (i1 - 1)) 跳出循环 () .如果真结束 .计次循环尾 () .如果真 (i1 > 主窗口.返回文本_群.取项目数 ()) 主窗口.返回文本_群.加入项目 (成员_ID [i], ) .如果真结束 .计次循环尾 () 模块_输出日志 (“当前在线账号内群列表载入完毕”, 2) .子程序 框架_选中群信息显示 .子程序 框架_数据写出, , , 写出所有数据 .局部变量 现行选中项, 整数型 ' 输出模块设置 这一部分 新建一个独立的ini保存 .判断开始 (主窗口.组件_启用勾选_消息.选中 = 真) 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “msg”, “OK”) .默认 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “msg”, “NO”) .判断结束 .判断开始 (主窗口.组件_启用勾选_功能.选中 = 真) 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “gn”, “OK”) .默认 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “gn”, “NO”) .判断结束 .判断开始 (主窗口.组件_启用勾选_应用.选中 = 真) 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “cj”, “OK”) .默认 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “cj”, “NO”) .判断结束 .判断开始 (主窗口.组件_启用勾选_返回.选中 = 真) 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “fh”, “OK”) .默认 写配置项 (当前运行目录 + “system\set\msgs.ini”, “msgs”, “fh”, “NO”) .判断结束 ' 输出返回文本设置 部分 写配置项 (当前运行目录 + “system\set\mmt.ini”, “mgent”, “lomt”, 主窗口.组件_数据_一级管理.内容) 写配置项 (当前运行目录 + “system\set\mmt.ini”, “mgent”, “tsmt”, 主窗口.组件_数据_二级管理.内容) 写配置项 (当前运行目录 + “system\set\mmt.ini”, “mgent”, “tlom”, 主窗口.组件_数据_三级管理.内容) ' 根据API获取到当前登录的账号 通过账号获取到群号 然后再利用获取到的群号获取当前已编辑的内容 .子程序 框架_数据载入, 整数型, , 载入所有数据 以上为部分代码
继续阅读
评论