.Net 6异步Onebot机器人框架


Keywords
bot, cqhttp, csharp, go-cqhttp, onebot, onebot-sdk, sora, websocket
License
Apache-2.0
Install
Install-Package Sora -Version 1.4.3

Documentation


LOGO
Sora

一个基于OneBot协议的 C#/.Net 6 异步机器人开发框架 | 框架文档

nuget onebot license stars workflow gocq-ver

重要信息

go-cqhttp 因为qq官方的一系列协议升级,可能后续会停止开发

详细的原因:go-cqhttp#2471

目前的情况是,gocq能用就不要做任何迁移,如果一定要迁移,哈哈,我也不知道迁移到哪,替代的已经无了

文档

=====本框架只支持Array的上报格式!=====

本页面不会对框架的特性做介绍,如果需要详细了解框架的功能一定要看文档

->Docs<-

->更新日志<- 更新日志中会标注框架所对应的go-cqhttp版本号

文档目前只有简单的向导和自动生成API文档

详细的介绍文档还在编写

如需要查看最新自动生成的文档请前往 Sora on fuget.org

支持的连接方式
  • 正向Websocket
  • 反向Websocket

关于本框架

本框架从开始到今后都只会支持onebot协议,非onebot的平台并不会考虑进行支持

这是一个以轻量为主的 onebot 机器人开发框架,主要的支持方向为 go-cqhttp

这个框架将会一直以简单易用为主,也会向着更加便捷的方向进行开发

所以不会有什么特别复杂的功能

同时也不会将框架拆分为多个不同功能的包 毕竟本来就没有什么功能

如果希望拥有 指令路由 多IM平台支持 等等功能,推荐使用 OneBot-Framework

这个项目同时也是我学习C#这个语言的过程中的产物,所以里面可能会部分拉高血压的代码 屎山

如果有什么建议的话,可以在Discussions里提出哦

开发注意事项

开源协议

本项目使用了 Apache-2.0开源协议

这意味着在引用/修改本类库时需要遵守相关的协议规定

代码复查

我复查了某一段代码

如果有代码复查,请在函数上面贴上Reviewed以代表是谁以及什么时候进行了代码复查

例如:

[Reviewed("XiaoHe321", "2021-03-11 00:45")]
internal async ValueTask METHOD_NAME()

若修改了这段代码,请将Reviewed注解及时删除,以方便代码复查人员知道,你改了这段代码,方便进行复查。

对于自己代码的复查,请不要贴上Reviewed。

我修改了一段代码需要复查

如果有代码需要复查,请在函数上面贴上NeedReview以代表这段代码需要复查

例如:

行号也可以是 ALL一代表这整个方法都需要检查

[NeedReview("L12-L123")]
internal async ValueTask METHOD_NAME()
QQ频道

本框架的正式版本和正常发布版本目前将不会支持Guild相关的API

具有Guild API的测试版本已经在 extra/guild分支中编写,如果需要这部分的API请自行clone引用或打包

警告:请勿将Guild分支测试版本在生产环境中使用,其中很多API都是实验性或不稳定的!

extra/guild 分支不会和主分支同步,这是一个完全实验性质的分支

把这两套IM的协议做在一个框架里会导致API非常混乱(我都不知道QQ项目组的人怎么想的)

并且鉴于频道也没什么人用,而且通话质量依旧是中东战场音质,本框架将会在V12协议适配频道协议后再考虑适配问题

关于ISSUE

ISSUE 目前只接受bug的提交和新功能的建议

如果有使用问题或者不确定的问题请使用Discussions

请注意, 开发者并没有义务回复您的问题. 您应该具备基本的提问技巧。

如果不知道该怎么样提问,那么请在提问前阅读 提问的智慧

以下ISSUE会被直接关闭

  • 提交BUG时没有使用Template
  • 提交当前版本下已经被修复的BUG
  • 询问问题(为什么不用用Discussions呢)

关于命名

Sora这个名字来源于日语中"空"的罗马音

一拍脑袋想的.jpg

鸣谢

感谢以下大佬对本框架开发的帮助

Mrs4s | wdvxdr1123 在使用go-cqhttp调试时提供了帮助

Kengxxiao | ExerciseBook 对框架做出了改进

使用到的开源库

Fleck | 反向WS服务器

Websocket.Client | 正向WS客户端

Newtonsoft.Json | Json序列化/反序列化

protobuf-net | ProtoBuf序列化/反序列化

System.Reactive | 响应式异步API支持

YukariToolBox | Log,异步扩展工具箱

感谢 JetBrains 为开源项目提供免费的全家桶授权

本项目使用了免费的ReSharper插件/Rider开发环境

jetbrains jetbrains jetbrains