# regular0.1.12 默认基础扩展配置说明
**regular0.1.12.js在[Yoyo交流群(363457102)](https://qm.qq.com/cgi-bin/qm/qr?k=FHUar0yCaVvcsURxp5_QJcumNViII_-9&jump_from=webapi&authKey=+mUCUeYkCubQvSnPb7f8u3nUuWT1nzMu1x36gEsK9jw/2sFijWCo6hi/tODieBS/)群文件下载。**
**请将 regular0.1.12.js 及其他yoyo机器人的扩展插件,放到BDS根目录./YoyoRobot/下。**
**Q群口令在./YoyoRobot/regular/config.json 中配置,以下为配置教程。**
**本手册兼容regular0.1.5 - 0.1.12 版本**
正则表达式教程:[正则表达式在线测试 | 菜鸟工具](https://c.runoob.com/front-end/854/)
JSON校验:[JSON 在线解析 | 菜鸟工具](https://c.runoob.com/front-end/53/)
**正则分为两种类型**
**一种是监听群消息:"type": "group"**
**另一种是监听控制台输出:"type": "cmd"**
## 一、监听控制台命令输出 ("type": "cmd")
```json
{
"type": "cmd",
"se": "Player (.*) added to allowlist",
"msg": "白名单 $1 添加完成"
}
```
se 为正则表达式,用来匹配控制台命令输出,msg 为机器人发送的群消息。
当控制台输出 Player error block added to allowlist,则向群内发送 白名单 error block 添加完成。
这条配置仅作为例子,在实际使用中是无效的,因为BDS的命令输出不会含有具体的玩家名字。
## 二、监听群消息("type": "group")
### (一) 执行后台命令
#### 1、监听Q群口令,执行后台命令
```json
{
"type": "group",
"se": "^清理掉落物$",
"cmd": "kill @e[type=item]",
"op": true
}
```
op 为是否仅允许机器人管理员执行
#### 2、监听Q群口令,执行后台命令,匹配命令输出,返回群消息提示。
```json
{
"type": "group",
"se": "^在线玩家$",
"cmd": "list",
"result":"There are ([\\d/]+) players online:([\\s\\S]*)",
"msg": "在线玩家:$1 $2",
"op": false
}
```
群里输“在线玩家” —> 执行后台命令list —> 匹配命令执行结果(result) —> 向群内发送msg
“msg”中的 \$1 \$2 为 "result" 对应位置的匹配内容。
```json
{
"type": "group",
"se": "^/(.+)$",
"cmd": "$1",
"result": "^(.+)$",
"msg": "$1",
"op": true,
}
```
这是群内执行/命令的配置。
用se正则匹配群内/开头的消息(se),执行后台命令(cmd),获取命令输出(result),向群内发送命令输出(msg)。
### (二)执行自定义函数
```json
{
"type": "group",
"se": "^地图画上传\\s(\\w{1,20})\\.jpg.*\n?$",
"fun": "customMap",
"op": false
}
```
需要在正则js文件中写代码,用来处理复杂的任务。
`var pl = selectGameName(123342344)`
返回QQ号绑定的玩家名称(XboxID)`null`为没有绑定。
`var piText = msg.text.match(RegularOject)`
获取Q群口令的参数(“se”的正则匹配)
`piText[1]`为第一个参数,`piText[2]`为第二个参数。
`msg.text` 为监听到的群消息。
`strSe.op` 是否是op口令。
`_sendGroupMsg(e.group_id, "<玩家>进入了服务器");`
发送普通群消息。
`_sendGroupMsg(e.group_id, [yoyo.segment.at(e.sender.user_id), yoyo.segment.text("\n你没有上传该地图画")]);`
发送@玩家的群消息。
### (三)机器人聊天回复
#### 口令完整匹配,直接回复
```json
{
"type": "group",
"se": "^@1145141919\\s*白名单$",
"msg": "在这里申请: http://xxxx.xxx",
"op": false
}
```
这里设置了@机器人发消息才会生效,1145141919为机器人qq号。
"se":^与\$中间填完整匹配的内容。
#### 识别关键词,进行随机回复
```json
{
"type": "group",
"se": "帮帮我",
"msg": ["不能", "什么问题, 先v我50", "为什么不问百度", "略略略"],
"op": false
}
```