怎么用c语言编辑酷q,GitHub - traceless0929/Native.Cqp.Csharp: 完全由 C# 语言编写的 酷Q 插件SDK...
代码库介绍
base分支为我自用的新建App的模板,引入了一些自己的机制简化开发流程
增加指令消息解析类,采用 (wwh) what who how模式
反射机制优化流程
同步更新Native.SDK
是个Native.SDK的DEMO(只是进行了看得懂的魔改)
样例应用
应用名
描述
备注
彩虹六号战绩查询插件,数据来源于R6stats
手摸手系列教程demo插件
消息解析
将原始指令使用空格(可更改)进行解析
如“攻击 麻花疼 50”
解析为
what(要干啥):攻击
who(对谁干):麻花疼
how(怎么干):50
无需自己解析指令!
反射机制
还在使用????
if(msg=="攻击"){
goAttack(fromQQ,target);
}
else if(msg=="防御"){
goDef(fromQQ,target);
}
不!可!以!
触发关键字修改还要改代码??
NO!!
多关键字触发同一个方法还在???
if(msg=="攻击"||msg=="打击"){
goAttack(fromQQ,target);
}
else if(msg=="防御"){
goDef(fromQQ,target);
}
OH MY GOD!!
这里帮你解决!
应用启动处增加映射关系(进行初始化,仅在应用第一次运行的机器中进行)
public void AppEnable(object sender, CQAppEnableEventArgs e)
{
//此处仅演示 私聊 和 群聊
Common.CqApi = e.CQApi;
string commandPath = Common.CqApi.AppDirectory + "command.ini";
IniConfig rootConfig=null;
if (!File.Exists(commandPath))
{
rootConfig = new IniConfig(commandPath);
rootConfig.Object["gcommands"]["功能1"] = "funcOne";
rootConfig.Object["gcommands"]["功能2"] = "funcTwo";
rootConfig.Object["pcommands"]["功能1"] = "funcOne";
rootConfig.Object["pcommands"]["功能2"] = "funcTwo";
rootConfig.Save();
}
else
{
rootConfig = new IniConfig(commandPath);
rootConfig.Load();
}
ISection pCommand = rootConfig.Object["pcommands"];
Common.PCommandDic = pCommand.ToDictionary(p => p.Key, p => p.Value.ToString());
ISection gCommand = rootConfig.Object["gcommands"];
Common.GCommandDic = gCommand.ToDictionary(p => p.Key, p => p.Value.ToString());
书写反射代码(直接Clone本仓库无需书写)
public class Event_GroupMsg : IGroupMessage
{
//群聊
public void GroupMessage(object sender, CQGroupMessageEventArgs e)
{
AnalysisMsg nowModel = new AnalysisMsg(e.Message.Text);
if (String.IsNullOrEmpty(nowModel.GCommand))
{
e.Handler = false;
return;
}
var gapp = Activator.CreateInstance(typeof(GroupApp)) as GroupApp;
var method = gapp.GetType().GetMethod(nowModel.GCommand);
object result = method.Invoke(null, new object[] { e, nowModel });
e.Handler = false;
}
}
public class Event_PrivateMsg : IPrivateMessage
{
//私聊
public void PrivateMessage(object sender, CQPrivateMessageEventArgs e)
{
AnalysisMsg nowModel = new AnalysisMsg(e.Message.Text);
if (String.IsNullOrEmpty(nowModel.PCommand))
{
e.Handler = false;
return;
}
var papp = Activator.CreateInstance(typeof(FriendApp)) as FriendApp;
var method = papp.GetType().GetMethod(nowModel.PCommand);
object result = method.Invoke(null, new object[] { e, nowModel });
e.Handler = false;
}
}
书写业务代码(群聊为例)
public class GroupApp
{
public static void funcOne(CQGroupMessageEventArgs e, AnalysisMsg msg)
{
e.CQApi.SendPrivateMessage(415206409,$"[这里是群方法 攻击]", $"参数数 {msg.OrderCount}\n", $"触发指令(第一参数 what) {msg.What}\n", $"目标(第二参数 who) {msg.Who}\n", $"怎么做(第三参数 how) {msg.How}\n", $"原始信息 {msg.OriginStr}\n", e.ToString());
}
public static void funcTwo(CQGroupMessageEventArgs e, AnalysisMsg msg)
{
e.CQApi.SendPrivateMessage(415206409, $"[这里是群方法 防御]\n", $"参数数 {msg.OrderCount}\n", $"触发指令(第一参数 what) {msg.What}\n", $"目标(第二参数 who) {msg.Who}\n", $"怎么做(第三参数 how) {msg.How}\n", $"原始信息 {msg.OriginStr}\n", e.ToString());
}
}
体验快感!
群聊“打击 麻花疼 50”效果等于“攻击 麻花疼 50”!(一个方法多个触发)
修改酷Q“\data\app\site.traceless.nativedemo\command.ini”重启应用即可更新指令映射!无需修改代码!
以下部分为框架作者的原文(包括打赏码)
Native.SDK 优点介绍
Native.SDK 是为了方便 .Net 平台开发者高效开发 酷Q应用 的开发框架。封装酷Q 提供的接口,提供了安全高效的Api,同时抽象了事件中的基础数据类型,并且提供了完整的托管异常处理,提供了优秀的开发环境。
特点
支持原生导出函数,不需要前置插件作为服务端。(能够在 .Net 平台中导出 C/C++ 可用的导出函数)
支持包括 WebServices 在内的所有 .Net 项目进行交互。
支持编译整合DLL。(在编译的同时,对所有使用到的程序集进行整合打包,保证最终结果只有 app.dll)
支持自由调整 .Net Framework 版本
支持 C# 和 VB.NET 两种语言编写代码
使用 UTF-8 编码,并且在托管和非托管之间启用了 GB18030 编码的转换
可以在 酷Q on Docker 中运行。(目前仅支持 .Net Framework 4.5)
在线文档
更新日志
关于打赏
您的支持就是我更新的动力!
怎么用c语言编辑酷q,GitHub - traceless0929/Native.Cqp.Csharp: 完全由 C# 语言编写的 酷Q 插件SDK...相关推荐
- r语言 编辑 d3.js_d3.js的语言介绍
r语言 编辑 d3.js by Matt Oxley 由马特·奥克斯利(Matt Oxley) d3.js的语言介绍 (A linguistic introduction to d3.js) 如何从一 ...
- c语言fac函数求n的阶乘,急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入。要求设计一个函数fac(n)求某个正整数n 的阶乘。...
急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入.要求设计一个函数fac(n)求某个正整数n 的阶乘. 來源:互聯網 2010-05-29 01:44:10 評論 分類: 電 ...
- c语言英汉互译编程,用C语言编辑简单英汉互译词典.doc
疥详刁呆害獭荆羞哈沮蒜赫夜内淮牺彻蔼纤凤虹锥硝够唬古进淋牡振拘铅笺元扳与醒靳蹋销钡胶致石衙钦目妈而炸赚鹤邓穷窍瘴笼旬房殆查恨蠢煌沧祥斥瞩骤敌晤屏莲匆目穷妖暗屹码冬息摊挎傍啡坟范给羹哥皱做斋绥甭焕睫苍苫 ...
- c语言编程等腰三角形,用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成三个面积相等的三角形?...
导航:网站首页 > 用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成三个面积相等的三角形? 用c语言编辑一个等腰三角形的讲解过程 一个等腰三角形怎么平均分成三个面积相等的三角形? ...
- 使用UltraEdit25.20.0.88进行Verilog语言编辑配置方式(详细)
UltraEdit版本为25.20.0.88,其他版本也适用. 1:下载Verilog的语法高亮文件. 即可支持相应的语言编辑,关键字将用不同色彩标出. 可以到官方网站去下载,包括上百种语法文件,我想 ...
- 洗衣机控制系统c语言编程,采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文.doc...
采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文 深 圳 大 学 本 科 毕 业 论 文(设计) 题目: 基于单片机设计的全自动 洗衣机控制器 姓名: 郑嘉泽 专业: 电子信息工程 学院: ...
- c语言编辑工具 中标普华,电子病历编辑器4.0版本-中标普华病历通
中标病历编辑器特点: 1.丰富的控制接口:系统提供了近400个接口函数,能从文档管理.编辑排版.光标控制.表格处理.图形处理.结构化录入.打印控制.事件处理.界面设置.痕迹管理等各个方面对系统功能进行 ...
- n的阶乘 计算机程序设计艺术,急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入。要求设计一个函数fac(n)求某个正整数n 的阶乘。...
急求C语言编辑题:Cnm=n!/m!(n-m)!其中n,m 由键盘输入.要求设计一个函数fac(n)求某个正整数n 的阶乘. 来源:互联网 宽屏版 评论 2010-05-29 01:44:10 分 ...
- 速卖通产品编辑中使用html,速卖通多语言编辑发布产品怎么做?
速卖通怎么发布产品?速卖通主要是针对外国买家,所以官方特地研发上线了一个多语言编辑速卖通产品发布的功能,快速解决速卖通怎么发布产品的问题,下面搜一客小编跟大家介绍一下怎么使用发布产品多语言编辑速卖通产 ...
最新文章
- [android] androidPN开源项目介绍
- 如何分析java程序_如何利用 JConsole观察分析Java程序的运行,进行排错调优
- 蓝桥杯java第八届第十题--k倍区间
- Python mysql 索引原理与慢查询优化
- iconv 判断字符编码_php下用iconv函数转换字符编码的问题
- 图书管理系统(说明文档与相关代码)
- lua 差值 日期_Lua获取系统时间和时间格式化方法及格式化参数
- 驰骋工作流引擎-总体介绍
- 百度网盘mac损害计算机,百度网盘Mac版
- RIP、OSPF、ISIS协议的区别
- How to hide the New! icon or control how long the icon is displayed.
- 简单的java文档扫描器
- 美国习惯用语flip out的中英文翻译解释和例子
- 安卓10开机时间优化分析
- MKL FFT简单调试
- 愿我们在路上聪明绝顶但不绝顶
- 【NLP】词法分析和词性标注
- 原来耳机还可以这么酷,哈氪零度无线耳机要音质更有颜值
- MATLAB学习笔记(一):绘制二维箭头图
- i春秋-密码-IceCTF-Alien Message