教程背景


本系列QQ开发教程使用Native SDK
基于全网最稳定的QQ机器人平台 酷Q
框架基础版本是我的魔改版本(小改动)

支持打包为CPK

开发语言为C#

平台和SDK的有点我就不介绍了,在SDK WIKI有很全的新手起步教程,本文针对有一定基础的,入门后的小伙伴
本文系列源码:点我进入

SDK魔改点

  1. 统一指令集(将指令划分为三个部分 what who how)
  2. 使用反射优化指令路由逻辑
  3. 精简一些不必要的SDK组件

统一指令集


将文字指令按照空格(可以修改为其它分隔符),进行分割,第一部分为what 第二部分为who 第三部分为how,
可以理解为,做什么 对谁 怎么做
如:攻击 马化腾 狼牙棒

将原始指令使用空格(可更改)进行解析

如“攻击 麻花疼 狼牙棒”
解析为
what(要干啥):攻击
who(对谁干):麻花疼
how(怎么干):狼牙棒
无需自己解析指令!

反射优化路由


在ini文件中配置对应的“做什么”,所对应的方法名,实现命令直接执行,而不需要使用大批的if-else或switch语句,使的事件代码过长,防止功能新增需要增加回调事件代码功能故障需要禁用时重新打包插件等问题,还可以实现动态配置功能指令的触发

还在使用????

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!!

这里帮你解决!

精简SDK组件

  1. 修改了极个别ini自带方法中容易抛出异常的方法
  2. 去除了sqlite工具集,使用sqlite-net作为新的sqlite操作库(虽然酷Q自带sqlite)

教程后继更新计划

结合具体应用场景,进行demo开发,内容会涉及

  1. SDK各种接口的使用
  2. HTTP接口的调用、结果的解析
  3. 数据库的使用(主要是sqlite)
  4. 在插件内嵌入restApi服务器,向外提供API,实现webhook接收、满足管理平台、用户平台的开发需求
  5. 未完待续...

1. 基础框架搭建

2. HTTP接口使用

3. INI/SQLITE/JObjcet使用

本文作者:Author:     文章标题:【手摸手系列】教你开发QQ机器人 - 目录导航
本文地址:https://traceless.site/index.php/archives/20/     
版权说明:若无注明,本文皆为“Traceless”原创,转载请保留文章出处。
Last modification:March 27th, 2020 at 04:03 pm
如果觉得我的文章对你有用,请随意赞赏