/ZeroBot-Plugin-Dynamic

ZeroBot-Plugin 的模块化,不支持 Windows,需要 CGO

Primary LanguageGoGNU General Public License v3.0GPL-3.0

OneBot-YaYa

ZeroBot-Plugin-Dynamic

ZeroBot-Plugin 的模块化,不支持 Windows,需要 CGO

GOCQ OICQ MIRAI

Go Report Card Badge Badge License qq group

本项目符合 OneBot 标准,可基于以下项目与机器人框架/平台进行交互

项目地址 平台 核心作者
Mrs4s/go-cqhttp MiraiGo Mrs4s
yyuueexxiinngg/cqhttp-mirai Mirai yyuueexxiinngg
takayama-lily/onebot OICQ takayama

命令行参数

[]代表是可选参数

zerobot [-h] [-n nickname] [-t token] [-u url] [-p prefix] [-d|w] [-c|s config.json] [-l latency] [-r ringlen] [-x max process time] [qq1 qq2 qq3 ...] [&]
  • -h: 显示帮助
  • -n nickname: 设置默认昵称,默认为椛椛
  • -t token: 设置AccessToken,默认为空
  • -u url: 设置Url,默认为ws://127.0.0.1:6700
  • -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)
  • qqs: superusers 的 qq 号
  • &: 驻留在后台,必须放在最后,仅Linux下有效

默认配置文件格式如下。当选择从配置文件加载时,将忽略相应命令行参数。

{
    "zero": {
        "nickname": [
            "椛椛",
            "ATRI",
            "atri",
            "亚托莉",
            "アトリ"
        ],
        "command_prefix": "/",
        "super_users": [],
        "ring_len": 4096,
        "latency": 233000000,
        "max_process_time": 240000000000
    },
    "ws": [
        {
            "Url": "ws://127.0.0.1:6700",
            "AccessToken": ""
        }
    ],
    "wss": null
}

功能

更多插件详见ZeroBot-Plugin

  • 动态加载插件
    • /刷新插件
    • /加载插件 service名
    • /卸载插件 service名
    • 仅 Linux, FreeBSD, macOS 可用
    • 开启后主可执行文件大约增加 2M ,每个插件的.so文件约为 2 ~ 10 M ,如非必要不建议使用
    • 动态加载的插件需放置在plugins/下,命名为service名.so,编译模版详见Plugin-Template
  • 插件控制
    • /响应 (在发送的群/用户开始工作)
    • /沉默 (在发送的群/用户停止工作)
    • /全局响应 (在所有位置开始工作,无视单独的沉默)
    • /全局沉默 (在所有本应沉默的位置停止工作,显式指定启用的位置不受影响)
    • /启用 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 重启后重置)
    • @Bot 插件冲突检测 (会在本群发送一条消息并在约 1s 后撤回以检测其它同类 bot 中已启用的插件并禁用)

使用方法

使用稳定版/测试版 (推荐)

可以前往Release页面下载对应系统版本可执行文件,并将插件放到plugins/目录下。

本地直接运行

  1. 下载安装最新 Go 环境
  2. 下载本项目压缩包,本地解压
  3. 编辑 main.go 文件,内容按需修改
  4. 运行 OneBot 框架
  5. Windows下双击 run.bat 文件,Linux下使用 run.sh 运行本插件

编译运行

利用 Actions 在线编译

  1. 点击右上角 Fork 本项目,并转跳到自己 Fork 的仓库
  2. 点击仓库上方的 Actions 按钮,确认使用 Actions
  3. 编辑 main.go 文件,内容按需修改
  4. 前往 Release 页面发布一个 Release,tag形如v1.2.3,以触发稳定版编译流程
  5. 点击 Actions 按钮,等待编译完成,回到 Release 页面下载编译好的文件
  6. 运行 OneBot 框架,并同时运行本插件
  7. 啾咪~

本地编译/交叉编译

  1. 下载安装最新 Go 环境
  2. 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
  1. 编辑 main.go 文件,内容按需修改
  2. 按照平台输入命令编译,下面举了一些例子
# 本机平台
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/logoove/sqlite,本项不再可用)mips Linux 平台 如 路由器 wndr4300
GOOS=linux GOARCH=mips GOMIPS=softfloat CGO_ENABLED=0 go build -ldflags "-s -w" -o zerobot -trimpath
  1. 运行 OneBot 框架,并同时运行本插件

特别感谢