From 2c74aea32e13a5d07fe261c918aec01474093747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=8C=8C?= Date: Mon, 16 Oct 2023 21:35:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20handler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plugins/handler.js | 13 ++++++++----- lib/plugins/loader.js | 2 ++ plugins/other/update.js | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/plugins/handler.js b/lib/plugins/handler.js index 52ddb6a..a96ebad 100644 --- a/lib/plugins/handler.js +++ b/lib/plugins/handler.js @@ -1,9 +1,10 @@ +import util from 'node:util' import lodash from 'lodash' let events = {} let Handler = { add (cfg) { - let { ns, fn, property = 50 } = cfg + let { ns, fn, self, property = 50 } = cfg let key = cfg.key || cfg.event if (!key || !fn) { return @@ -15,6 +16,7 @@ let Handler = { property, fn, ns, + self, key }) events[key] = lodash.orderBy(events[key], ['priority'], ['asc']) @@ -38,7 +40,8 @@ let Handler = { } }, async callAll (key, e, args) { - return await Handler.callAll(key, e, args, true) + // 暂时屏蔽调用 + // return Handler.call(key, e, args, true) }, async call (key, e, args, allHandler = false) { let ret @@ -51,9 +54,9 @@ let Handler = { } done = false } - ret = fn(e, args, reject) - if (ret) { - await ret + ret = fn.call(obj.self, e, args, reject) + if (util.types.isPromise(ret)) { + ret = await ret } if (done && !allHandler) { logger.mark(`[Handler][Done]: [${obj.ns}][${key}]`) diff --git a/lib/plugins/loader.js b/lib/plugins/loader.js index b63880e..fce9fa6 100644 --- a/lib/plugins/loader.js +++ b/lib/plugins/loader.js @@ -83,6 +83,7 @@ class PluginsLoader { Handler.add({ ns: plugin.namespace || File.name, key: key, + self: plugin, property: priority || plugin.priority || 500, fn: plugin[fn] }) @@ -776,6 +777,7 @@ class PluginsLoader { Handler.add({ ns: plugin.namespace || File.name, key: key, + self: plugin, property: priority || plugin.priority || 500, fn: plugin[fn] }) diff --git a/plugins/other/update.js b/plugins/other/update.js index a2b8377..a33c30f 100644 --- a/plugins/other/update.js +++ b/plugins/other/update.js @@ -19,11 +19,11 @@ export class update extends plugin { priority: 4000, rule: [ { - reg: '^#更新日志$', + reg: '^#更新日志', fnc: 'updateLog' }, { - reg: '^#(强制)?更新$', + reg: '^#(强制)?更新', fnc: 'update' }, {