From be70d6ac2f5298a20e1afb4af1f180d56bf4a859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=B6=E9=9B=A8=E2=97=8E=E6=98=9F=E7=A9=BA?= Date: Tue, 30 May 2023 03:47:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E5=B8=A6Bot=E5=90=8D?= =?UTF-8?q?=E5=AD=97=E6=97=B6=20=E6=98=9F=E9=93=81=E5=91=BD=E4=BB=A4=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=AF=86=E5=88=AB=20(#144)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plugins/loader.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/plugins/loader.js b/lib/plugins/loader.js index c620194..424dfc1 100644 --- a/lib/plugins/loader.js +++ b/lib/plugins/loader.js @@ -30,6 +30,9 @@ class PluginsLoader { /** 插件监听 */ this.watcher = {} + + /** 星铁命令前缀 */ + this.srReg = /^#?(\*|星铁|星轨|穹轨|星穹|崩铁|星穹铁道|崩坏星穹铁道|铁道)+/ } /** @@ -213,6 +216,13 @@ class PluginsLoader { /** 是否只关注主动at */ if (!this.onlyReplyAt(e)) return + // 判断是否是星铁命令,若是星铁命令则标准化处理 + // e.isSr = true,且命令标准化为 #星铁 开头 + if (this.srReg.test(e.msg) || /\/common\//.test(e.msg)) { + e.isSr = true + e.msg = e.msg.replace(this.srReg, "#星铁") + } + /** accept */ for (let plugin of priority) { /** accept hook */ @@ -354,17 +364,7 @@ class PluginsLoader { for (let val of e.message) { switch (val.type) { case 'text': - let msg = (val.text || '').replace(/^\s*[#井#]+\s*/, '#').replace(/^\s*[\\*※]+\s*/, '*').trim() - - // 判断是否是星铁命令,若是星铁命令则标准化处理 - // e.isSr = true,且命令标准化为 #星铁 开头 - let srReg = /^#?(\*|星铁|星轨|穹轨|星穹|崩铁|星穹铁道|崩坏星穹铁道|铁道)+/ - let gclink = /\/common\//.test(msg) - if (srReg.test(msg) || gclink) { - e.isSr = true - msg = msg.replace(srReg, '#星铁') - } - e.msg = (e.msg || '') + msg + e.msg = (e.msg || "") + (val.text || "").replace(/^\s*[#井#]+\s*/, "#").replace(/^\s*[\\*※]+\s*/, "*").trim() break case 'image': if (!e.img) {