2 Star 3 Fork 3

晨旭 / receiver-meow

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
develop.md 2.31 KB
一键复制 编辑 原始数据 按行查看 历史
晨旭 提交于 2020-12-16 16:36 . 基本能跑了

综述

软件会启动多个虚拟机处理数据,一旦相应的虚拟机新建完毕,除非手动重载,不会再重启改虚拟机:

虚拟机名称 启动条件 会处理的事件
main 软件启动、虚拟机重载后 处理启动事件、好友请求、群邀请等无法归属的事件
private 私聊 处理所有私聊消息
各个群号 群消息等 处理所有与群相关的消息、事件
MQTT 收到mqtt事件 收到mqtt事件
tcp 收到tcp消息 收到tcp消息

所有lua虚拟机皆由LuaTask框架进行管理,各自均为单线程运行。分为多个虚拟机是为了提高效率,防止群数量太多,互相阻塞。

每个虚拟机生成后,都会直接运行main.lua。脚本需要在其中注册好需要的事件、定时器任务。

触发事件

触发接口见LuaTask-csharp

基本代码如下:

--lua里注册触发应对事件
sys.tiggerRegister('事件',function(data)
    print('触发',data.xxxxx)
end)
//C#里触发事件
LuaEnv.LuaStates.Run("虚拟机名称", "事件", 触发数据);

所有事件均可在Ws.cs的Events函数找到,并且可以轻松地看出传入lua的数据内容

http的原始接口文档可在onebot-事件查看

http返回的原视json数据原封不动地存放在传给lua数据的raw键下,方便按需调用

主动接口

该部分直接由lua脚本实现

lua脚本构造请求数据,直接通过Http.cs来与http接口进行交互。

http接口文档见onebot-公开API

该部分可翻阅lua脚本,全部逻辑均由lua实现。

CQ码

onebot-消息段类型

调用C#接口

请参考Nlua关于import函数的使用说明

上面描述的主动接口基本都是调用C#接口进行发送。如果还看不懂调用方法,请参考现有Lua脚本依葫芦画瓢。

C#
1
https://gitee.com/chenxuuu/receiver-meow.git
git@gitee.com:chenxuuu/receiver-meow.git
chenxuuu
receiver-meow
receiver-meow
master

搜索帮助