从零开始搭建一个群管机器人
环境搭建
安装golang
- 从golang中文官网下载go语言安装包
- 下载完成后解压配置环境变量
命令行输入go version
安装goland
- 从goland官网下载goland安装包
- 双击后正常安装就可
创建项目
初始化项目
- 打开goland,创建go项目,取名为leafBot-plugin
- 初始化项目
go mod init github.com/huoxue1/fan
- 安装leafbot依赖
go get github.com/huoxue1/leafbot
- 跟项目下创建main.go文件
编写main.go文件,初始化leafBot
- 在main.go中修改package为main
- 创建main方法,添加如下代码
// main方法,项目运行起点
func main() {// 创建一个cqhttp的driverdriver := cqhttp_default_driver.NewDriver()// 为leafBot加载该驱动leafbot.LoadDriver(driver)// 初始化leafBotleafbot.InitBots()// 运行cqhttp驱动driver.Run()
}
- 一般main.go会自动导入如下依赖
import (// leafbot核心依赖"github.com/huoxue1/leafbot"// leafbot的cqhttp与leafbot直接结合所用的依赖"github.com/huoxue1/leafbot/cqhttp_default_driver"
)
- main.go最终结果为
package mainimport ("github.com/huoxue1/leafbot""github.com/huoxue1/leafbot/cqhttp_default_driver"
)func main() {driver := cqhttp_default_driver.NewDriver()leafbot.LoadDriver(driver)leafbot.InitBots()driver.Run()
}
- 首次运行该项目,输入bot的qq号即可
- 再次运行,因为还需要初始化go-cqhttp的配置文件,所有好需要交互
- 再次运行即可运行成功,生成二维码后使用手机扫码登录即可
插件编写
创建插件项目
- 在项目跟目录添加文件夹plugin,在plugin下继续创建文件夹plugin-manager,并且创建manager.go文件
- 在manager.go文件夹中添加如下代码
package group_managerimport ("fmt""strconv""github.com/huoxue1/leafbot""github.com/huoxue1/leafbot/message"
)func init() {manager()
}func manager() {// 创建一个leafBot插件,插件名为group-managerplugin := leafbot.NewPlugin("group-manager")// 为plugin添加一个matcher,匹配器为Onstart,即匹配消息开始为升为管理的语句plugin.OnStart("升为管理", leafbot.Option{// 添加matcher的权重,权重越低,越先匹配Weight: 1,// 设置匹配成功后是否匹配其他matcherBlock: true,Rules: []leafbot.Rule{},}).Handle(func(ctx *leafbot.Context) {// 遍历事件中的messagefor _, v := range ctx.Event.Message {// 判断事件中的消息类型weiatif v.Type == "at" {// 取出at的qq号,并强制转为整形qq, _ := strconv.Atoi(v.Data["qq"])// 调用api,为其设置为管理员ctx.Bot.(leafbot.OneBotApi).SetGroupAdmin(ctx.Event.GroupId, qq, true)// 发送消息,xxx已升为管理员ctx.Send(message.Text(fmt.Sprintf("%v已经升为管理员", qq)))}}})// 取消管理plugin.OnStart("取消管理",leafbot.Option{Weight: 1,Block: true,}).Handle(func(ctx *leafbot.Context) {for _, v := range ctx.Event.Message {if v.Type == "at" {qq, _ := strconv.Atoi(v.Data["qq"])ctx.Bot.(leafbot.OneBotApi).SetGroupAdmin(ctx.Event.GroupId, qq, false)ctx.Send(message.Text(fmt.Sprintf("%v已被取消管理员", qq)))}}})}
- 在main.go中导入该插件,即在import中添加
import("github.com/huoxue1/leafbot""github.com/huoxue1/leafbot/cqhttp_default_driver"_ "github.com/huoxue1/fan/plugin/group-mamanger"
)
- 运行后,在机器人为群主的群里发送,升为管理并且艾特需要升为管理的人即可设置管理
leafBot解释
leafBot为一个go语言版本实现了onebot11协议的SDK,推荐对接onebot为go-cqhttp
leafBot除了Onstart匹配器外,还有匹配器
// 命令匹配
OnCommand(command string, options ...Option) Matcher
// 消息匹配
OnMessage(messageType string, options ...Option) Matcher
// 请求事件匹配
OnRequest(requestType string, options ...Option) Matcher
// 提醒事件匹配
OnNotice(noticeType string, options ...Option) Matcher
// 元事件匹配
OnMeta(options ...Option) Matcher
// 正则匹配
OnRegex(regexMatcher string, options ...Option) Matcher
// 匹配字符串开始
OnStart(start string, options ...Option) Matcher
// 匹配字符串结尾
OnEnd(end string, options ...Option) Matcher
// 消息完全匹配
OnFullMatch(content string, options ...Option) Matcher
// 群组消息完全匹配
OnFullMatchGroup(content string, options ...Option) Matcher
// bot连接回调
OnConnect(options ...Option) Matcher
// bot断开回调
OnDisConnect(options ...Option) Matcher
更多内容参考LeafBot
从零开始搭建一个群管机器人相关推荐
- 从零开始搭建一个语音对话机器人
点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] ♪ 点击上方绿标 收听从零开始搭建一个语音对话机器人 从零开始搭建一个语音对话机器人 目录 01-初心缘由 01-准备工作 02-语音机器 ...
- espeak 中文语音包_从零开始搭建一个语音对话机器人
点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] ♪ 点击上方绿标 收听从零开始搭建一个语音对话机器人 从零开始搭建一个语音对话机器人 目录 01-初心缘由 01-准备工作 02-语音机器 ...
- 有没有python与机械结合的工作-Python3从零开始搭建一个语音对话机器人的实现...
01-初心缘由 最近在研究语音识别方向,看了很多的语音识别的资料和文章,了解了一下语音识别的前世今生,其中包含了很多算法的演变,目前来说最流行的语音识别算法主要是依赖于深度学习的神经网络算法,其中RN ...
- python发音机器人_Python3从零开始搭建一个语音对话机器人
目录 01-初心缘由 最近在研究语音识别方向,看了很多的语音识别的资料和文章,了解了一下语音识别的前世今生,其中包含了很多算法的演变,目前来说最流行的语音识别算法主要是依赖于深度学习的神经网络算法,其 ...
- 从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一)
从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一) 1.vue-cli搭建一个可靠成熟的项目 1.介绍 vue-cli 我是去年六月份接触的vue1.0,当时还是个菜逼,当 ...
- github项目怎么运行_利用 GitHub 从零开始搭建一个博客
"NightTeam",一个值得加星标的公众号. 趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域 ...
- 利用 GitHub 从零开始搭建一个博客
"NightTeam",一个值得加星标的公众号. 趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域 ...
- 如何利用 GitHub 从零开始搭建一个博客
趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了. 由于 NightTeam 的域名是 nightteam.cn,所以这里官方博客使用了二级域名 blo ...
- 从零开始搭建一个GIS开发小框架(一)——基本框架
目录 1.概述 1.1 项目背景 1.2 传送门 2.技术选型:GMap.NET 3.底图功能实现 2.1 方式一:在线地图(以高德为例) 2.2 greatmaps生成底图(瓦片地图) 3.搭建主程 ...
- spring boot:从零开始搭建一个项目 - day 5 Mybatis plus代码自动生成器
spring boot:从零开始搭建一个项目 - day 5 Mybatis plus代码自动生成器 一.Mybatis plus代码自动生成器 1.引入配置 2.创建Controller 3.执行m ...
最新文章
- 什么是python-了解什么是Python面向对象(1)
- ztree树形菜单demo
- 信息检索(IR)的评价指标介绍-准确率、召回率、F1、mAP、ROC、AUC
- Google帮助IE浏览器实现对SVG支持
- markdown入门4--矩阵空格公式方程组
- python输出隔4个字符_python怎么实现每隔几个字符分割
- 美团8年经验之谈,测试工程师如何进阶(自动化、性能、测开)
- js字符串首字母大写其他小写
- 2021.10.25-10.31 AI行业周刊(第69期):AI进化之路
- MySQL之——mysqldump参数详细说明
- AKM项目轶事之与高中同学徐挺会见
- codeblocks配置glut
- SpringBoot - OAuth2第三方登录之新浪微博登录
- 新手对Ubuntu应该这么学!
- Realsense相机疑难问题
- 不同调制方式对信道容量影响的分析
- 强化学习中Sarsa与Q-learning的区别
- 6410修改键盘驱动 自定义6*5矩阵键盘
- 嵌入式软件开发培训笔记——C高级 开发环境
- spring boot 参数 ENC()加密