Skip to content

常见问题 ​

使用机器人需要准备什么? ​

一台能跑程序能联网的计算机, 需要一直运行机器人程序

硬件要求 至少 1G 内存空间 至少 1G 存储空间

系统要求 Windows8.1 或 Windows Server 2012 及以上

一个 QQ 小号, 最好有等级 用自己的 QQ 小号, 安全又稳定, 不存在多人共用, 不会修改签名资料自主可控

使用后需要注意的 ​

  • 尽量避免更换环境 (更换服务器或 ip), 无法保证可以选择找代买服务器(150元/年), 自己购买 99元/年
  • 更换服务器记得备份资料
  • 尽量选择等级高一点的QQ
  • 之前使用过其他框架需要提前告知

机器人怎么用? ​

这个不用担心, 可以远程帮部署好, 最好语音教你怎么使用, 部署 10 分钟, 教学 15 分钟, 轻松拿下

功能都是按需使用, 用不到的功能可以关闭

如何启动? ​

机器人完整运行需要两个独立程序, 无先后启动顺序

  • 机器人本体 / 悠悠 / mxdbot (提供业务处理能力)

  • 协议端 (提供与 QQ 消息收发等接口调用)

直接双击 start.bat 就可以启动

没有 start.bat 或 启动了旧版本

点击 启动器(starter) 的 生成并启动 会自动生成并保存一份 start.bat

协议端启动

无固定方式, 以部署时为准

如何查看或修改网页管理端密码? ​

寻找机器人安装的文件夹, 使用 notepad++ 打开 application.yml 文件

打开 /config/application.yml, 修改 password 的值

提示

修改密码需要重启程序生效

半角冒号后面需要有一个空格, 含特殊字符的密码可以用 ' 或 " 包裹起来

出现 登录繁忙 ​

密码多次输入错误, 重启程序

如何更新? (强烈不建议自行更新) ​

先打开 启动器(starter) 再点击 更新

下载更新完成后, 点击 生成并启动 即可 (重新生成启动脚本)

提示

不同版本差异较大, 更新后可能导致无法正常工作, 更新前 问问客服 或 协助更新

换群 ​

切换主副群 ​

切到哪个群, 哪个群才会生效

目录结构 ​

config
.
├─ adapter              适配器
│  └─ ...
├─ config
│  ├─ application.yml   配置文件    
│  └─ data.db           数据库文件    
├─ files                文件
│  ├─ upload            来自上传的文件      
│  └─ ...               
├─ modules              模块
│  ├─ commander                  
│  └─ ...               
├─ objects              对象 (通常是 json)
│  └─ ...               
├─ plugins              插件的配置和数据
│  └─ ...                  
├─ mxdbot-*.*.*.jar     主程序
├─ starter.exe          启动器
└─ start.bat            启动脚本

配置文件 ​

文件位置 /config/application.yml

yml
adapter: NapCat                   # 适配器名称  
password: 886521                  # 后台登录密码, 强烈建议修改, 5 次输入错误系统禁止再次登录 
open-api:                  
  whitelist:                      # openapi 允许调用地址  
    - 127.0.0.1
    - 0:0:0:0:0:0:0:1
  charset: UTF-8                  # 编码  
  token: ''
server:
  port: 9600                      # 端口, 默认9600

提示

不同层级一定用空格对齐, 而不是 tab, 半角冒号后面一定要有一个空格

不正确的配置格式会导致程序无法启动

端口占用 ​

程序会默认占用 9600 端口

网页管理端的网址是什么? ​

本地访问 http://127.0.0.1:9600/static/web/index.html

外网访问 http://{外网ip}:9600/static/web/index.html

假如你的服务器 ip 是 81.16.7.22 就访问 http://81.16.7.22:9600/static/web/index.html

提示

https 协议是访问不了的, 有些浏览器会隐藏协议

/static/web/index.html 是必须增加的, 这是有必要的

如何安装成 App ​

Edge 浏览器 - 设置 - 应用 - 将此站点作为应用安装, 创建完成后, 添加桌面快捷方式

图片教程

接收消息推送的地址是什么? ​

http://127.0.0.1:9600/bot/event

JavaScript ES ​

只支持部分 ES6

配置文件内置 key 解释 ​

admins 管理员列表, 权限低于 master

master 机器人的最高权限管理员

group.main 主群号

group.test 测试群号

group.current 当前启用群号, 在 工具 面板可快速切换, 无需配置

提示

没有群就新建一个

回复中的 普通模式 脚本模式 ​

普通模式下机器人会直接发送内容的文本

脚本模式下不会直接发送内容, 而是会执行内容中的脚本

可以利用 bot 对象发送消息, 撤回等操作

利用脚本模式撤回消息

js
function action(event) {
    bot.recall(event.messageId)
}

脚本模式返回值的说明

采用 责任链 模式, 每个脚本依次按顺序执行, 当脚本返回 false 时, 结束整个 责任链

返回 true 则继续交给下一个脚本 / 回复

默认返回 false

如何发送本地图片? 为什么要发送本地图片? ​

发送本地图片, 可以保持图片的可靠性, 超链接容易失效

<image file="file:///本地图片路径">

路径中可以用 @ 代替工作目录

如 <image file="file:///@/files/img.png">

消息中特殊字符转义 < > & 等 ​

被 < 和 > 所包裹的内容, 将被系统转换成有意义的内容

想输出真正的 < 和 >, 需要对其转义, & 也需要转义

  • 使用 &lt; 或 &#60; 代替 <
  • 使用 &gt; 或 &#62; 代替 >
  • 使用 &amp; 或 &#38; 代替 &
  • 使用 &lsb; 或 &#91; 代替 [
  • 使用 &rsb; 或 &#93; 代替 ]
  • 使用 &lcub; 或 &#123; 代替 {
  • 使用 &rcub; 或 &#125; 代替 }

mysql 创建指定 ip 的用户 ​

sql
-- 创建用户 ip 地址必填 
CREATE USER 'bot'@'{{ip地址}}' IDENTIFIED BY '密码';
-- 赋予查询, 新增, 删除, 修改权限
GRANT SELECT, INSERT, DELETE, UPDATE ON *.* TO 'bot'@'{{ip地址}}';
-- 刷新
FLUSH PRIVILEGES;
有限的权限
sql
-- 创建用户 ip 地址必填 
CREATE USER 'bot'@'{{ip地址}}' IDENTIFIED BY '密码';
-- 赋予查询权限
GRANT SELECT ON *.* TO 'bot'@'{{ip地址}}';
-- 授予 item_warehouse 表的新增权限
GRANT INSERT ON *.item_warehouse TO 'bot'@'{{ip地址}}';
-- 授予 verification_code_pool 表的修改和新增权限
GRANT UPDATE, INSERT ON *.verification_code_pool TO 'bot'@'{{ip地址}}';
-- 授予 accounts 表的修改和新增权限
GRANT UPDATE(password), INSERT ON *.accounts TO 'bot'@'{{ip地址}}';
-- 刷新
FLUSH PRIVILEGES;

连接远程数据库教程 https://www.bilibili.com/video/BV1SC3vzFEbf/

mxdbot/config/application.yml 中 open-api.whitelist 最好也要新增调用者 ip

怎么发送 QQ 表情? ​

在群里发一个表情, 看看消息面板, 怎么收到的就怎么发, 嘿嘿😝

怎么发送 at 全体? ​

<at user-id="all"> 或 bot.at('all')

机器人不正常工作了, 如何排查? ​

机器人完整运行需要 2 个程序

蓝窗口(mockqq) 负责与 QQ 通讯

黑窗口(mxdbot) 负责功能的实现

终端是否被阻塞住了(标题是否存在 选择 选中 选定 标记 标签)?

点击窗口, 按一下 回车键, 即可解除阻塞状态

容易误触, 属性中关闭快速编辑模式

蓝窗口(mockqq) 的 QQ 是否下线了? 黑窗口(mxdbot) 是否到期了?

下线了需要重启 蓝窗口(mockqq)

给机器人发一条消息, 蓝窗口(mockqq) 黑窗口(mxdbot) 终端是否打印新的消息?

如果任意终端收不到消息, 就说明他有问题

Q群管理后台的工具里, 当前群 是否正确? 发一条消息消息面板是否能显示新的消息?

如果私聊有反应, 群聊没反应说明工作正常, 检测 当前群 的设置

QQ 是否开启了屏蔽群消息

机器人是否在群里? 机器人是否被禁言? 当前Q群是否为全体禁言? 机器人是否把群消息屏蔽了?

仔细检查哦

如果是在测试功能, 查看该功能是否开启?

例: 如果用 签到 功能, 检查 签到 插件是否开启?

开启了才有回复哦

只有部分消息回复不了

查看要回复的内容是否包含 < > & 这三个字符?

应该为三个字符进行转义, 对应转义为 &lt; &gt; &amp; (&和;都是要有的)

图片要上传, 才能发送

连接数据库的功能都失效了

是否重启过游戏服务器? 机器人和游戏不在一起时, 还要重启 黑窗口(mxdbot)

更换游戏端了, 但是 黑窗口(mxdbot) 未连接 数据库

更换 服务器 了, 但是 黑窗口(mxdbot) 未连接 数据库