Skip to content

zerobot框架

himawari edited this page Jul 7, 2022 · 1 revision

zerobot结构

image

各个结构的内容

  • 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.go

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个参数:

  1. NickName,bot的昵称,当OnlyToMe会用到,@bot或昵称开头时,视为OnlyToMe
  2. CommandPrefix使用OnCommand()匹配的时候的前缀,默认为/
  3. SuperUsers, 超级管理员权限,填bot主人qq,当SuperUserPermission检查权限的时候会用上
  4. ws连接的端口,默认本地的6700端口,框架不断去连接6700端口,直至连上. 配置多个ws时,依次连接端口,如果中间有坏端口,会堵塞在这里,如此设置,是希望开发者主动删除掉坏的端口。
Clone this wiki locally