Code Monkey home page Code Monkey logo

spnchen / mirai-plugin-hrobot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ccosfor/mirai-plugin-hrobot

0.0 0.0 0.0 15.96 MB

mirai 群聊机器人插件,简单对话 | 自定义关键字回复 | 定时发布 | 敏感词检测 | 加群审批 | 涩图发送 | 二刺螈美图 | 风景图 | 随机鸡汤 | 坎公骑冠剑会战统计、前线报道、会战报表、查刀、催刀 | 在线点歌,聚合多个平台 | 畅听周杰伦 | 百度百科 | 俄罗斯轮盘赌小游戏 | 番剧订阅 | UP 主动态订阅 | 更多功能等待开发...

Java 99.35% Kotlin 0.45% Dockerfile 0.20%

mirai-plugin-hrobot's Introduction

Mirai-Plugin-HRobot

mirai 群聊机器人插件,支持加群审批、敏感词检测撤回,支持每日定时发送,支持订阅番剧更新、UP 动态更新推送,支持发送涩图(可指定tag)、美图、风景图等,支持随机鸡汤发送,支持坎公骑冠剑会战统计、前线报道、会战报表等功能,支持在线点歌,综合多个音乐平台发送最佳音乐,支持对话聊天,支持自定义关键词回复、正则表达式匹配……更多功能正在开发。

在一些情况下,发送涩图无反应,但查看控制台日志却发送图片已经发送,这种情况可能是由于图片被腾讯 ”拦截“ 了,属于正常现象,如果这种情况频繁发生,可以先暂停使用此号,过会时间再用,否则可能会被封号。

image-20220703143852884

V3.3 版本后可以选择仅发送涩图链接,这或许是个不错的选项。

配置手册:配置手册

在此项目上二次开发或共同建设:开发手册

声明:HRobot 默认将会使用**标准时间。

快速使用

机器人运行必须要求 Java 运行时环境版本大于等于 11。

建议您使用 mirai-console-loader 快速启动 mirai 机器人,下载地址:Releases · iTXTech/mirai-console-loader (github.com),下载后解压文件。

网络上有很多教程,例如:Mirai Console Loader的使用教程~ - 哔哩哔哩 (bilibili.com)

如果你是新手,不会安装 java 环境,你可以使用安装器一键安装 java 环境 和 mcl,请移步:mcl 一键安装

如果你会使用 Docker,强烈建议你使用 Docker 运行,可参考 使用 Docker 运行

经过测试,HRobot 适配 mcl-1.2.2、mcl-1.2.1、mcl-2.1.1 版本,其他版本暂未测试,但应该都是支持的。

前往Releases · happysnaker/mirai-plugin-HRobot (github.com)选择对应版本下载插件 jar 包 plugin-SNAPSHOT.mirai.jar,将该 jar 包移动至 mcl 文件下的 plugins 文件夹下,然后无须配置任何文件,点击 mcl.cmd 即可启动机器人,注意如果你是第一次下载,你必须先启动一次 mcl.cmd 才会有 plugins 相关文件夹生成。

在 Linux 下需要在当前文件下输入 ./mcl 命令启动.

启动后在命令行中键入:login QQ账号 QQ密码 即可登录机器人,登录相关步骤请参考:登录步骤

更多信息请移步mamoe/mirai: 高效率 QQ 机器人支持库 (github.com)iTXTech/mirai-console-loader: 模块化、轻量级且支持完全自定义的 mirai 加载器。 (github.com)

如果你需要砍公骑冠剑相关或更多高级功能,那么您必须配置相关信息,请移步 配置文件手册

更多功能正在开发,请 STAR 持续关注此项目

使用 Docker 运行

Docker 是每一位程序员必备的技能,如果你的机器上没有安装 Java 环境,强烈建议你使用 Docker 运行,这能省去绝大多数不必要的麻烦。

如果你还不会使用 docker,可参考如下步骤拉取容器并运行:

  1. 第一步:拉取镜像

    # default tag latest
    docker pull happysnaker/h-robot:latest	

    自 v3.3 之后,我们会为每个 release 版本维护一个 tag,你可以使用 tag 拉取对应的版本,例如 docker pull happysnaker/h-robot:3.3,版本号详情请前往 release 页面查看。

  2. 第二步:前台运行容器

    docker run --name h-robot -it happysnaker/h-robot:latest bash

    由于涉及到交互问题,我们没有为容器设置任何入口命令,因此必须要在前台运行容器。

  3. 第三步:登录并配置机器人

    在终端与容器交互,你所在的目录应该是 /app 目录,容器已经下载好了 mcl 以及对应版本插件,可以直接运行。

    root@4520678a5a87:/app# ls -al
    total 644
    drwxr-xr-x  3 root root   4096 Oct  2 19:36 .
    drwxr-xr-x 68 root root   4096 Oct  2 19:51 ..
    -rw-------  1 root root  34522 Sep 19 00:47 LICENSE
    -rw-------  1 root root   3705 Sep 19 00:47 README.md
    -rwx--x--x  1 root root     71 Sep 19 00:47 mcl
    -rw-------  1 root root    153 Sep 19 00:47 mcl.cmd
    -rw-------  1 root root 595443 Sep 19 00:49 mcl.jar
    drwxr-xr-x  2 root root   4096 Oct  2 19:36 plugins

    在第一次运行 ./mcl 启动机器人后,会自动生成模板配置文件,如有需要可以进行配置。随后重新启动一次机器人,参考上述使用说明登录机器人。

    当然你可以使用 docker cp 命令复制配置文件到容器中。

在我的云服务器上,我似乎没法用 docker logs 查看对应命令,因此我使用了 ./mcl | tee -a log.log 将输出同时定向到文件中查看,如果你也存在这个问题,可以参考这个做法

  1. 第四步:退出容器但不终止机器人

    键入快捷键 ctrl p q 退出容器但不终止容器。当然你也可以使用 nohupscreen 等相关工具来完成此目的。

虽然 Docker 镜像版本与插件版本对应,但在升级插件时建议你在直接在容器内更换插件版本,并重新启动机器人,而不是重新拉取最新版本镜像运行,因为重新运行容器需要重新登录、重新配置机器人,浪费精力。

关键字示例

表格展示为最新版插件功能,默认情况下,与机器人聊天需要@机器人,而其他关键字都无须 @,详情请查看下表中的“示例”,你可以在 历史版本关键字及命令 中找到历史版本对应关键字,在配置文件中你可以选择关闭 @。

特殊关键字 示例 功能
@机器人 你好呀 与机器人聊天,在默认情况下这需要 @机器人 才会得到回复,不过你可以进行配置以关闭它,机器人还支持笑话、歌词、计算等其他功能,你可以前往青云客智能聊天机器人API 查看具体信息
帮助 @机器人 帮助 显示主菜单
前线报道 前线报道 查看工会战前线Boss信息
会战报表 会战报表 查看当日出刀情况
会战统计 会战统计 统计本次会战所有参与玩家数据,包括对任一 Boss 的数据统计
会战统计 会战统计好开心 统计玩家名为“好开心”的会战数据,此功能会包含出刀数和输出饼状图
查刀 查刀 成员1 成员2 查询 成员1、成员2 的出刀情况,机器人会发送柱状图以表示出刀情况
查刀折线图 用法同上 “查刀” 使用柱状图生成,适合多成员比对;“查刀折线图” 使用折线图,适合查看单成员数据,因为多成员可能会出现线“重合问题”
谁未出刀 谁未出刀 查看今日谁没出刀,可以通过配置或命令设置公会成员,若不设置,则默认群内所有成员都是公会成员,这可能造成错误@,此功能必须要求群成员昵称完全等于游戏名
谁没出刀 谁没出刀 同谁未出刀
催刀 催刀 机器人 @ 所有未出刀的群成员并催刀,可以通过配置或命令设置公会成员,若不设置,则默认群内所有成员都是公会成员,这可能造成错误@,此功能必须要求群成员昵称完全等于游戏名
一键催刀 一键催刀 机器人 @ 所有未出刀的群成员并催刀,相较于 催刀 而言,此功能还会 @ 出了刀但未出满的成员,可以通过配置或命令设置公会成员,若不设置,则默认群内所有成员都是公会成员,这可能造成错误@,此功能必须要求群成员昵称完全等于游戏名
鸡汤 鸡汤 发送随机鸡汤,有一定的概率发送毒鸡汤,你可以在配置文件中配置这个概率
美图 美图 发送随机二刺螈美图
风景图 风景图 发送随机风景图
神秘代码 神秘代码萝莉 白丝 发送涩图,可指定 tag,tag 之间存在空格
涩图 涩图萝莉 白丝 发送涩图,可指定 tag,tag 之间存在空格,相较于神秘代码而言,此涩图放开 R18 限制,更加涩涩,默认情况下发送图片后 30s 后自动撤回,可通过配置修改撤回时间
高清涩图 同上 画质更高,但接口不稳定,容易出错
音乐 音乐克罗地亚狂想曲 从酷我、QQ、网易云聚合搜索音乐,并发送卡片
咪咕 咪咕七里香 从咪咕音乐搜索,咪咕音乐可以免费听周杰伦的所有歌曲
百度百科 百度百科 基金 查询 基金 的百度百科释义
装弹 装弹 给俄罗斯轮盘赌手枪装弹,默认将以配置文件的弹夹数为主,也可以添加参数自定义弹数,例如 “装弹 2 6” 表示总弹夹 6 发,真弹 2 发,不过自定义弹夹数需要机器人群管理员或者 QQ 群管理员权限
开枪 开枪 开枪!一旦成员被命中,他将无法继续参与游戏,当剩余下一次开枪必中或者必不中时,游戏结束
卸下弹夹 卸下弹夹 由机器人群管理员或者 QQ 群管理员提前结束游戏
疫情 深圳疫情 查询深圳疫情,可通过 "地点疫情" 查询对应地点疫情,支持国家查询,数据来源:网易新闻
自定义关键字 —— 可以通过配置或者命令设置自定义关键字及回复,关键字和回复可以是纯文本,也可以是表情、图片等,详情请前往配置手册或命令手册查看。当回复是图片时,请注意图片不一定能在服务器上长期保存。

命令

在 2.0 版本后,你可以通过命令的形式远程配置机器人,随时随地进行配置,你只要在群聊中发布相关命令即可。

但是你必须要有对应的权限,在最开始,你需要在配置文件中配置你自己成为超级管理员,随后你便可以通过命令的形式授予或移除他人权限,配置文件相关信息可参考:配置手册

超级管理员 > 管理员 > 群管理员 > 坎公管理员

下表展示最新版插件插件功能,你可以在 历史版本关键字及命令 中找到历史版本对应信息。

注意,所有命令都必须以 # 开头,如果不执行 保存配置 文件,那么所有命令配置将在机器人关机时丢失。

命令 示例 功能 权限要求
#保存配置 #保存配置 将由命令造成的配置更改写入配置文件以持久化,注意这会使得配置文件顺序变乱 至少是管理员权限
#重载配置 #重载配置 重新载入配置文件 至少是管理员权限
#查看配置状态 #查看配置状态 查看是否有命令执行成功 至少是管理员权限
#查看配置日志 #查看配置日志 若有命令执行成功,查看命令执行日志 至少是管理员权限
#授予管理员权限 #授予管理员权限 123456 权限命令,授予 qq 为 123456 用户管理员权限 必须要求自身权限大于被操作对象的权限以及要授予的权限
#授予坎公管理员权限 #授予坎公管理员权限 123456 权限命令,授予 qq 为 123456 用户授予坎公管理员权限 必须要求自身权限大于被操作对象的权限以及要授予的权限
#授予群管理员权限 #授予群管理员权限 123456 权限命令,授予 qq 为 123456 用户群管理员权限 必须要求自身权限大于被操作对象的权限以及要授予的权限
#移除管理员权限 #移除管理员权限 123456 权限命令,移除 qq 为 123456 用户管理员权限 必须要求自身权限大于被操作对象的权限
#移除坎公管理员权限 #移除坎公管理员权限 123456 权限命令,移除 qq 为 123456 用户的坎公管理员权限 必须要求自身权限大于被操作对象的权限
#移除群管理员权限 #移除群管理员权限 123456 权限命令,移除 qq 为 123456 用户群管理员权限 必须要求自身权限大于被操作对象的权限
#查看权限 #查看权限 权限命令,查看自身的权限,也可以通过“#查看权限 qq” 来查看他人的权限 无要求
#设置关键字回复 #设置关键字回复 {自定义关键字} 自定义回复 设定全局生效的自定义关键字及回复,关键字及回复都可以是图片或表情,你必须使用 {} 将关键字包裹起来,除关键字和命令之外的其他任何消息都将会被视为回复 至少是管理员权限
#设置关键字回复 #设置关键字回复 {#regex#呜*} 你呜尼玛呢 默认情况下,机器人通过“编辑距离”算法检测关键词相似度,但当关键字以特殊前缀 “#regex#” 打头时,表示关键字是一个正则表达式,例如 “呜*” 将匹配任意个 “呜“ 至少是管理员权限
#设置关键字回复 (引用消息)#设置关键字回复 关键字 你还可以引用一条消息来代表回复,通过此方式,关键字无须用 {} 包裹,请注意删除 @ 信息,否则关键字必须也要 @ 触发 至少是管理员权限
#设置群内关键字回复 用法同上 群内关键字回复只针对发送者的群生效 至少是群管理员权限
#移除关键字 #移除关键字 关键字 移除一条全局的关键字 至少是管理员权限
#移除群内关键字 #移除群内关键字 关键字 移除一条发送者群内的关键字 至少是群管理员权限
#清空关键字 #清空关键字 清空全局的关键字 至少是管理员权限
#清空群内关键字 #清空群内关键字 清空发送者群内的关键字 至少是群管理员权限
#清空所有关键字 #清空所有关键字 #清空所有(包括群内)的关键字 至少是管理员权限
#设置坎公公会成员 #设置坎公公会成员 成员1 成员2 ...... 将成员1、成员2、......、成员 N 设置为发送者群对应的坎公公会成员(会覆盖原有的配置),执行添加或移除成员前,必须先执行此命令或通过配置文件配置 至少是坎公管理员权限
#添加坎公公会成员 #添加坎公公会成员 成员1 成员2 ...... 在原有配置的基础上,动态的增添成员 至少是坎公管理员权限
#移除坎公公会成员 #移除坎公公会成员 成员1 成员2 ...... 在原有配置的基础上,动态的移除成员 至少是坎公管理员权限
#清空坎公公会成员 #清空坎公公会成员 清空发送者群对应的坎公公会成员 至少是坎公管理员权限
#查看坎公公会成员 #查看坎公公会成员 查看坎公公会成员,在配置后可调用此命令查看配置结果 至少是坎公管理员权限
#设置坎公cookie #设置坎公cookie 123456 ikhqwe 将群 123456 的 cookie 设置为 ikhqwe 至少是管理员权限
#开机 #开机 开启机器人 至少是超级管理员权限
#关机 #关机 关闭机器人,在关机状态下,机器人仅监听开机命令 至少是超级管理员权限
#开启自动审批 #开启自动审批 开启加群自动审批,机器人会自动审批加群通知,此命令还可以接验证消息,例如 #开启自动审批 123456,那么只有在成员加群验证消息完全匹配时才会同意,否则会拒绝(请赋予机器人管理员) 至少是管理员权限
#关闭自动审批 #关闭自动审批 关闭自动审批 至少是管理员权限
#开启敏感词检测 #开启敏感词检测 开启敏感词检测,检测敏感词并撤回(请赋予机器人管理员),如需此功能请前往配置文件配置相关信息并配置敏感词库 至少是管理员权限
#关闭敏感词检测 #关闭敏感词检测 关闭敏感词检测 至少是管理员权限
#设置定时任务 #设置定时任务{18-0-10-1}你好呀 配置定时任务,以{}包裹配置信息,{}中配置形式为 {hour-minute-count-image},具体含义可前往配置文件查看,暂不支持中途取消任务,可以选择停止机器人运行,如果 count 为 0,当调用保存配置命令时,这将会被写入配置文件持久化 至少是管理员权限
#开启涩图 #开启涩图 开启涩图功能,默认开启 至少是管理员权限
#关闭涩图 #关闭涩图 关闭涩图功能,防止群被封 至少是管理员权限
#设置涩图发送模式 #设置涩图发送模式 1 支持四种发送模式 0、1、2、3,数值 0 表示不发送任何消息;数值 1 表示仅发送图片链接,不发送图片;数值 2 表示仅发送图片,不发送图片链接;数值 3 表示既发送图片,又发送图片链接 至少是管理员权限
#订阅 #订阅 bilibili 0 384136794 qq1 qq2 qq3 ... 命令格式 #订阅 平台 类型 KEY At成员列表,与配置文件中配置对齐,可前往 配置文件模板 查看说明,其中 pushGroup 会被设置为发送者所在的群。 至少是群管理员权限

配置

项目秉持着开箱即用的原则,正常使用本插件不需要任何配置,但是如果你需要一些高级功能,或者涉及到某些需要配置的功能,例如砍公会战管理、订阅推送,此时你必须前往配置文件中进行配置。

HRobot 支持配置文件,配置文件在 mcl/config/com.happysnaker.HRobot/config.yaml 中,您可以手动创建配置文件,不过建议您运行一次 mcl.cmd,这会自动生产配置文件,配置文件相关信息可参考:配置手册

mcl/data/com.happysnaker.HRobot 目录下存在一个 error.log,这里会记录机器人运行时发生的错误。

在 2.0 版本后,你还可以通过命令的形式配置机器人。

贡献

提出你的创意,或者再此源代码上进行二次开发,开发相关手册可参考:开发手册

声明

我不是生产者,我只是 API 的搬运工,由于 API 随时可能停用,故此插件可能随时出问题,请您 star 此项目,一般情况下 API 失效都会第一时间解决(☞ 指重新找一个 API)。

所有使用 API 均为网络上免费 API,如下为主要使用的 API 列表:

mirai-plugin-hrobot's People

Contributors

happysnaker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.