-
Notifications
You must be signed in to change notification settings - Fork 46
zerobot框架
himawari edited this page Jul 7, 2022
·
1 revision
各个结构的内容
- docs: 储存一些zerobot一些文档
并没有写什么文档 - driver: 里面是websocket连接的逻辑
- example: 一些用法的示例 (重要)
- extension: 一些拓展的内容,不要太关心
- message: 包含消息类,CQ码转换,提供了文字,图片,语音各种qq消息的封装 (重要)
- utils: 工具类,主要用BytesToString,进行没有内存开销的转换
- api.go: 主要接口,包含发消息,获取群信息的方法 (重要)
- bot.go: 主要是消息处理过程
- callermap.go: 不关心
- engine.go: 引擎类,一个插件对应一个engine,engine包含前置匹配,后置处理,是否堵塞,触发器,主要关心触发器,用的最多的是OnFullMatch,OnRegex
- event_channel.go: 连续对话需要用的
- matcher.go: 触发器类,包括rule(筛选规则),handle(处理),我们主要关心的就是这两个
- rules.go: 筛选规则的方法,前面是封装在matcher里面,你要点进matcher才能看见,OnlyToMe筛选@bot或以bot呢称开头的消息,OnlyGroup筛选群消息 (重要)
- shell.go: 命令行参数处理
- types.go: 一些结构体类,主要关心Event结构体,ctx.Event.UserID 命令的使用者,ctx.Event.GroupID 消息群号
main函数
func main() {
zero.RunAndBlock(zero.Config{
NickName: []string{"bot"},
CommandPrefix: "/",
SuperUsers: []int64{123456},
Driver: []zero.Driver{
driver.NewWebSocketClient("ws://127.0.0.1:6700/", ""),
},
}, nil)
}
zero.Config一共有4个参数:
- NickName,bot的昵称,当OnlyToMe会用到,@bot或昵称开头时,视为OnlyToMe
- CommandPrefix使用OnCommand()匹配的时候的前缀,默认为/
- SuperUsers, 超级管理员权限,填bot主人qq,当SuperUserPermission检查权限的时候会用上
- ws连接的端口,默认本地的6700端口,框架不断去连接6700端口,直至连上. 配置多个ws时,依次连接端口,如果中间有坏端口,会堵塞在这里,如此设置,是希望开发者主动删除掉坏的端口。