本分支增加本机管理后台,支持连接、插件、AI、日志与配置备份。仅监听本机回环地址,默认端口为3010。
“椛椛是真寻的好朋友!”
ZeroBot-Plugin 是 ZeroBot 的 实用插件合集
本项目符合 OneBot 标准,可基于以下项目与机器人框架/平台进行交互
| 项目地址 | 平台 | 核心作者 | 备注 |
|---|---|---|---|
| LLOneBot | NTQQ | linyuchen | 目前推荐使用 |
| go-cqhttp | MiraiGo | Mrs4s | 因签名原因不再维护 |
| onebot-kotlin | Mirai | yyuueexxiinngg | 不再积极维护 |
| oicq/http-api | OICQ | takayama | 已归档不再维护 |
专为后 go-cqhttp 时代开发迁移的
类zbp新机器人现已出炉,基于官方api,稳定不风控: NanoBot-Plugin
如果您对开发插件感兴趣,欢迎加入ZeroBot-Plugin-Playground
webui持续开发中, 欢迎加入ZeroBot-Plugin-Webui
[]代表是可选参数
zerobot [-h] [-m] [-n nickname] [-t token] [-u url] [-g url] [-p prefix] [-d|w] [-c|s config.json] [-l latency] [-r ringlen] [-x max process time] [-mirror] [qq1 qq2 qq3 ...] [&]- -h: 显示帮助
- -m: 不自动标记消息为已读
- -n nickname: 设置默认昵称,默认为
椛椛 - -t token: 设置
AccessToken,默认为空 - -u url: 设置
Url,默认为ws://127.0.0.1:6700 -g url(默认禁用): 设置webui url,默认为127.0.0.1:3000- -p prefix: 设置命令前缀,默认为
/ - -d|w: 开启 debug | warning 级别及以上日志输出
- -c config.json: 从
config.json加载bot配置 - -s config.json: 保存现在
bot配置到config.json - -l latency: 全局处理延时 (ms)
- -r ringlen: 接收消息环缓冲区大小,
0为不设缓冲,并发处理 - -x max process time: 最大处理时间 (min)
- -mirror: 直接使用镜像懒加载数据站而不尝试访问源站
- qqs: superusers 的 qq 号
- &: 驻留在后台,必须放在最后,仅
Linux下有效
默认配置文件格式如下。当选择从配置文件加载时,将忽略相应命令行参数。
{
"zero": {
"nickname": ["椛椛", "ATRI", "atri", "亚托莉", "アトリ"],
"command_prefix": "/",
"super_users": [],
"ring_len": 4096,
"latency": 233000000,
"max_process_time": 240000000000,
"mark_message": true
},
"ws": [{ "Url": "ws://127.0.0.1:6700", "AccessToken": "" }],
"wss": null
}在编译时,以下功能除插件控制外,均可通过注释
main.go中的相应import而物理禁用,减小插件体积。
通过插件控制,还可动态管理某个功能在某个群的打开/关闭。
插件的优先级为
import的先后顺序。
webui默认禁用不编译,打开后会增加程序体积。
插件控制
-
/响应 (在发送的群/用户开始工作)
-
/沉默 (在发送的群/用户停止工作)
-
/全局响应 (在所有位置开始工作,无视单独的沉默)
-
/全局沉默 (在所有本应沉默的位置停止工作,显式指定启用的位置不受影响)
-
/启用 xxx (在发送的群/用户启用xxx)
-
/禁用 xxx (在发送的群/用户禁用xxx)
-
/此处启用所有插件
-
/此处禁用所有插件
-
/全局启用 xxx
-
/全局禁用 xxx
-
/还原 xxx (在发送的群/用户还原xxx的开启状态到初始状态)
-
注:当全局未配置或与默认相同时,状态取决于单独配置,后备为默认配置;当全局与默认不同时,状态取决于全局配置,单独配置失效。
-
/改变默认启用状态 xxx
-
/禁止 service qq1 qq2... (禁止 qqs 使用服务 service)
-
/允许 service qq1 qq2... (重新允许 qqs 使用服务 service)
-
/封禁 qq1 qq2... (禁止 qqs 使用全部服务)
-
/解封 qq1 qq2... (允许 qqs 使用全部服务)
-
/用法 xxx
-
/服务列表
-
/设置服务列表显示行数 xx (默认值为 9, 该设置仅运行时有效, zbp 重启后重置)
-
(默认禁用) /设置webui用户名 zerobot 密码 123456
-
(默认禁用) /webui启动
-
(默认禁用) /webui停止
-
@Bot 插件冲突检测 (会在本群发送一条消息并在约 1s 后撤回以检测其它同类 bot 中已启用的插件并禁用)
动态加载插件
import _ "github.com/FloatTech/ZeroBot-Plugin-Dynamic/dyloader"
- 本功能需要
cgo,故已分离出主线。详见ZeroBot-Plugin-Dynamic
戳一戳互动
戳一戳机器人即可触发。插件 chat 独立开关;固定基础回应和群空调已删除。
睡眠管理
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/sleep_manage"
- 早安 | 晚安
违禁词检测
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/antiabuse"
-
添加违禁词
-
删除违禁词
-
查看违禁词
群管
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/manager"
自动撤回已并入群管,保留独立会话开关:开启自动撤回、关闭自动撤回、查看群管功能开关。见群管说明。
-
禁言[@xxx][分钟]
-
解除禁言[@xxx]
-
我要自闭 | 禅定 x [分钟 | 小时 | 天]
-
开启全员禁言
-
解除全员禁言
-
升为管理[@xxx]
-
取消管理[@xxx]
-
修改名片[@xxx][xxx]
-
修改头衔[@xxx][xxx]
-
申请头衔[xxx]
-
踢出群聊[@xxx]
-
退出群聊[群号]@Bot
-
*入群欢迎
-
*退群通知
-
设置欢迎语[欢迎~] 可选添加 [{at}] [{nickname}] [{avatar}] [{id}]
-
在[MM]月[dd]日的[hh]点[mm]分时(用[url])提醒大家[xxx]
-
在[MM]月[每周 | 周几]的[hh]点[mm]分时(用[url])提醒大家[xxx]
-
取消在[MM]月[dd]日的[hh]点[mm]分的提醒
-
取消在[MM]月[每周 | 周几]的[hh]点[mm]分的提醒
-
在"cron"时(用[url])提醒大家[xxx]
-
取消在"cron"的提醒
-
列出所有提醒
-
翻牌
-
赞我
-
群签到
-
[开启 | 关闭]入群验证
-
[开启 | 关闭]gist加群自动审批
-
对信息回复:[设置 | 取消]精华
-
取消精华 [信息ID]
-
/精华列表
-
同意好友请求
-
对信息回复: 撤回
-
警告[@xxx]
-
注:使用gist加群自动审批,请在群介绍添加以下说明,同时开启
需要回答问题并由管理员审核:加群请在github新建一个gist,其文件名为本群群号的字符串的md5(小写),内容为一行,是当前unix时间戳(10分钟内有效)。然后请将您的用户名和gist哈希(小写)按照username/gisthash的格式填写到回答即可。 -
设置欢迎语可选添加参数说明:{at}可在发送时艾特被欢迎者 {nickname}是被欢迎者名字 {avatar}是被欢迎者头像 {uid}是被欢迎者QQ号 {gid}是当前群群号 {groupname} 是当前群群名
群应用:AI声聊
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/airecord"
-
设置AI语音群号1048452984(tips:机器人任意所在群聊即可)
-
设置AI语音模型
-
查看AI语音配置
-
发送AI语音xxx
定时指令触发器
import _ "github.com/FloatTech/zbputils/job"
-
注意:触发器具有限速,每 2s 仅允许最多一次触发
-
记录以"完全匹配关键词"触发的(代表我执行的)指令
-
取消以"完全匹配关键词"触发的(代表我执行的)指令
-
记录在"cron"触发的(别名xxx的)指令
-
取消在"cron"触发的指令
-
查看所有触发指令
-
查看在"cron"触发的指令
-
查看以"完全匹配关键词"触发的(代表我执行的)指令
-
注入指令结果:任意指令
-
执行指令:任意指令
-
注:任意指令可以使用形如
?::参数1提示语::1!,?::参数2提示语::2!,?::?可选参数3提示语,不回答将填入空值::3!,!::从url获取的参数::4!,!::?可选的从url获取的参数,出错将填入空值::5!的未定参数,在注入时一一匹配 -
一些示例
每日12:00以1/2概率执行一言指令
记录在"0 12 * * *"触发的指令
注入指令结果:>runcoderaw py
from random import random
if random() > 0.5: print('一言')
else: print('今天没有一言哦~')每日15:00询问设置定时者否想看一言
记录在"0 15 * * *"触发的指令
注入指令结果:>runcoderaw py
if '?::想看一言吗?::1!' == '想': print('一言')
else: print('好吧')自行编写简易的选择困难症助手小插件
记录以"简易的选择困难症助手"触发的指令
执行指令:>runcoderaw py
from random import random
if random() > 0.5: print('您最终会选?::请输入您的选择1::1!')
else: print('您最终会选?::请输入您的选择2::2!')
简易的选择困难症助手自行编写随机b站404页趣图插件
记录以"随机b站404页趣图"触发的代表我执行的指令
注入指令结果:>runcoderaw py
import json
j = json.loads(r'''!::https://api.iyk0.com/bili_chart::1!''')
print("run[CQ:image,file="+j["img"]+"]")
随机b站404页趣图-
[我|大家|有人][说|问][正则表达式]你[答|说|做|执行][模版]
-
[查看|看看][我|大家|有人][说|问][正则表达式]
-
删除[大家|有人|我][说|问|让你做|让你执行][正则表达式]
-
注:模版是指含有
$1$2这样的未定参数,会在正则匹配时按顺序填入子匹配对应值
AIfalse
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/ai_false"
-
查询计算机当前活跃度: [检查身体 | 自检 | 启动自检 | 系统状态]
-
设置默认限速为每 m [分钟 | 秒] n 次触发
aiimage
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/aiimage"
- 设置AI画图密钥xxx
- 设置AI画图接口地址https://api.siliconflow.cn/v1/images/generations
- 设置AI画图模型名Kwai-Kolors/Kolors
- 查看AI画图配置
- AI画图 [描述]
B站资料查询、链接解析与订阅推送
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibiliparse"
-
统一B站资料查询、链接解析与动态/直播订阅(P019/P021并入P020)
-
解析、动态推送、直播推送分别开关,旧查询及订阅命令保留
-
使用说明:统一B站功能
-
t.bilibili.com/642277677329285174 | bilibili.com/read/cv17134450 | bilibili.com/video/BV13B4y1x7pS | live.bilibili.com/22603245
漂流瓶
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/drift_bottle"
-
@Bot pick (随机捞一个漂流瓶)
-
@Bot throw xxx (投递内容xxx,支持图片文字,投递内容需要大于10个字符或者带有图片)
好友申请及群聊邀请事件处理
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/event"
-
[开启|关闭]自动同意[申请|邀请|主人]
-
[同意|拒绝][申请|邀请][flag]
-
flag跟随事件一起发送, 默认同意主人的事件
kokomi原神面板
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/kokomi"
-
kokomi菜单
-
XX面板
-
注:本插件未并入主仓库,需自行安装(须源码方式运行才能添加插件),安装地址kokomi-原神面板查询插件
钓鱼模拟器
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/mcfish"
- 钓鱼商店
- 购买xxx [数量]
- 出售[xxx [数量]|所有垃圾]
- 钓鱼背包
- 装备[xx竿|三叉戟|美西螈]
- 附魔[诱钓|海之眷顾]
- 修复鱼竿
- 合成[xx竿|三叉戟]
- 进行钓鱼
- 进行n次钓鱼
Minecraft服务器监控&订阅
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/minecraftobserver"
- mc服务器状态 [服务器IP/URI]
- mc服务器添加订阅 [服务器IP/URI]
- mc服务器取消订阅 [服务器IP/URI]
- mc服务器订阅拉取 (需要插件定时任务配合使用,全局只需要设置一个)
- 使用job插件设置定时, 对话例子如下::
- 记录在"@every 1m"触发的指令
- (机器人回答:您的下一条指令将被记录,在@@every 1m时触发)
- mc服务器订阅拉取
- 使用job插件设置定时, 对话例子如下::
一群一天一夫一妻制群老婆
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/qqwife"
-
引入好感度系统,好感度越高,自由恋爱成功率越高
-
设置CD为xx小时
-
[允许|禁止]自由恋爱
-
[允许|禁止]牛头人
-
娶群友
-
[娶|嫁][@对方QQ]
-
当[对方Q号|@对方QQ]的小三
-
做媒 @攻方QQ @受方QQ
-
买礼物给[对方Q号|@对方QQ]
-
群老婆列表
-
查好感度[对方Q号|@对方QQ]
-
好感度列表
-
重置花名册
签到与钱包
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/score"
- 签到
- 获得签到背景[@xxx] | 获得签到背景
- 设置签到预设(0~3)
- 查看等级排名
- 注:跨群排行
- 查看我的钱包 / 查看钱包余额[@xxx]
- 钱包转账金额[@xxx](群内)
- 设置硬币名称XX / 管理钱包余额[+金额|-金额][@xxx](主人)
- 使用说明:签到与钱包
- 查看钱包排名
- 注:本群排行,若群人数太多不建议使用该功能!!!
抽塔罗牌
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/tarot"
- 抽[塔罗牌|大阿卡纳|小阿卡纳]
- 抽n张[塔罗牌|大阿卡纳|小阿卡纳]
- 解塔罗牌[牌名]
- [塔罗|大阿卡纳|小阿卡纳|混合]牌阵[圣三角|时间之流|四要素|五牌阵|吉普赛十字|马蹄|六芒星]
vtb语录
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/vtb_quotation"
-
vtb语录
-
随机vtb
-
更新vtb
角色库:每日抽取、自定义角色与猜角色
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/wife"
- 抽老婆:当前群自定义库优先,无自定义角色时使用内置库
- 抽内置老婆:明确使用内置库
- 抽wife、添加wife、删除wife:兼容原群自定义角色命令
- 猜老婆:保留内置角色猜题
- 权限、素材与开关见角色库说明
聊天热词
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/word_count"
- 热词 [消息数目]|热词 1000
猜单词
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/wordle"
-
中文成语与英文单词统一入口、开关和群内对局互斥
-
个人/团队猜词 中文;个人/团队猜词 英文;结束猜词
-
使用说明:猜词游戏
-
个人猜单词
-
团队猜单词
-
团队六阶猜单词
-
团队七阶猜单词
鬼东西
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/wtf"
-
鬼东西列表
-
查询鬼东西[序号][@xxx]
-
注:由于需要科学,默认注释。
AI中心:聊天、Agent、GPT与群聊总结
插件 aichat 统一控制。私聊发送文字、群内@机器人、/gpt 问题或群聊总结 10。原AI配置命令保留,详见 AI中心与群互动。
打断复读
import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/breakrepeat"
- (打断三次以上的复读)
可以前往Release页面下载对应系统版本可执行文件,编译时开启了全部插件。
- 下载安装最新 Go 环境
- 下载本项目压缩包,本地解压
- 编辑 main.go 文件,内容按需修改
- 运行 OneBot 框架
Windows下双击 run.bat 文件,Linux下使用 run.sh 运行本插件
- 点击右上角 Fork 本项目,并转跳到自己 Fork 的仓库
- 点击仓库上方的 Actions 按钮,确认使用 Actions
- 编辑 main.go 文件,内容按需修改
- 前往 Release 页面发布一个 Release,
tag形如v1.2.3,以触发稳定版编译流程 - 点击 Actions 按钮,等待编译完成,回到 Release 页面下载编译好的文件
- 运行 OneBot 框架,并同时运行本插件
- 啾咪~
- 下载安装最新 Go 环境
- clone 并进入本项目,下载所需包
git clone --depth=1 https://github.com/FloatTech/ZeroBot-Plugin.git
cd ZeroBot-Plugin
go version
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=auto
go mod tidy
go generate main.go- 编辑 main.go 文件,内容按需修改
- 按照平台输入命令编译,下面举了一些例子
# 本机平台
go build -ldflags "-s -w" -o zerobot -trimpath
# x64 Linux 平台 如各种云服务器
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o zerobot -trimpath
# x64 Windows 平台 如大多数家用电脑
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o zerobot.exe -trimpath
# armv6 Linux 平台 如树莓派 zero W
GOOS=linux GOARCH=arm GOARM=6 CGO_ENABLED=0 go build -ldflags "-s -w" -o zerobot -trimpath
# (由于引入了github.com/fumiama/sqlite3,本项不再可用)mips Linux 平台 如 路由器 wndr4300
GOOS=linux GOARCH=mips GOMIPS=softfloat CGO_ENABLED=0 go build -ldflags "-s -w" -o zerobot -trimpath- 运行 OneBot 框架,并同时运行本插件
同时感谢以下开发者对 ZeroBot-Plugin 作出的贡献:
