正则规则引擎
规则库位于 plugins/lumenbridge/rules.json,每条规则结构如下:
json
{
"id": "rule_query_server",
"name": "查服",
"enabled": true,
"triggerType": "message",
"pattern": "^查服$",
"flags": "i",
"eventType": "",
"conditions": [],
"actions": [
{"type": "executeCommand", "params": "list"},
{"type": "replyText", "params": "$result"}
],
"block": true
}字段说明
| 字段 | 说明 |
|---|---|
triggerType | message = 群消息触发,event = 事件触发 |
pattern | 正则表达式(Python 语法) |
flags | 正则标志:i 忽略大小写 / m 多行 / s 单行 |
eventType | 事件触发时的事件类型,如 group.member_join |
conditions | 附加条件数组,全部满足才执行 |
actions | 动作序列,顺序执行 |
block | 命中后是否阻断后续规则 |
支持的动作类型
| 动作 | 说明 |
|---|---|
replyText | 回复文本(支持变量替换) |
replyImage | 回复图片(参数为图片 URL) |
deleteMessage | 撤回触发消息 |
muteUser | 禁言触发者(参数为秒数,默认 600) |
executeCommand | 在服务器执行命令,输出存入 $result |
callPluginCommand | 调用子插件注册的自定义动作 |
支持的变量
| 变量 | 说明 |
|---|---|
$userId | 触发者 QQ 号 |
$groupId | 群号 |
$at | 被 @ 的人的 QQ(无 @ 时为触发者自己) |
$nickname | 触发者昵称 |
$result | 上一个 executeCommand 的输出 |
$0 $1 $2 ... | 正则捕获组 |
条件字段
| field | 说明 |
|---|---|
userRole | 用户角色,sparkadmin 表示超级管理员 |
userId | QQ 号 |
groupId | 群号 |
支持的 operator:== / != / includes / matches
内置默认规则
| 规则 | 触发 | 作用 |
|---|---|---|
| 查白名单 | 查白名单 @某人 | 查询 @ 的人绑定的 XboxID |
| 查服 | 查服 | 执行 /list 并回复在线玩家 |
| 管理员执行命令 | 执行<命令> | 仅管理员可用,执行任意服务器命令 |
| 入群欢迎 | 新成员入群事件 | 自动发送欢迎语 |
事件触发
triggerType: "event" 时,eventType 可选:
group.member_join— 新成员入群group.member_leave— 成员退群server.player_join— 玩家进服server.player_left— 玩家退服server.player_chat— 玩家游戏内聊天
