fix: 修复上下文

This commit is contained in:
ningmengchongshui 2024-06-15 14:11:05 +08:00
parent d679d70023
commit ac4df58eec
3 changed files with 24 additions and 20 deletions

3
plugins/.gitignore vendored
View File

@ -1,3 +0,0 @@
genshin
system-plugin
miao-plugin

View File

@ -340,27 +340,34 @@ class PluginsLoader {
*
*/
for (const plugin of priority) {
/**
* hook
*/
if (!plugin.getContext) continue
if (!plugin?.getContext) continue
const context = {
...plugin.getContext(),
...plugin.getContext(false, true)
}
if (!lodash.isEmpty(context)) {
let ret
for (const fnc in context) {
// 不是函数,错误插件错误写法
if (typeof plugin[fnc] !== 'function') {
continue
}
ret ||= await plugin[fnc](context[fnc])
}
// 返回continue时继续响应后续插件
if (ret === 'continue') continue
return
if (lodash.isEmpty(context)) {
continue
}
// 不为空的时候
let ret = false
// 从方法里执行
for (const fnc in context) {
// 不是函数,错误插件错误写法
if (typeof plugin[fnc] !== 'function') {
continue
}
ret = await plugin[fnc](context[fnc])
}
// 不是约定的直接
if (typeof ret != 'boolean' && ret !== true) {
break
}
//
}
/**

View File

@ -210,7 +210,7 @@ export class Plugin {
* @param isGroup
* @returns
*/
getContext(type: string, isGroup?: boolean) {
getContext(type?: string, isGroup?: boolean) {
if (type) return State[this.conKey(isGroup)]?.[type]
return State[this.conKey(isGroup)]
}