feat: 优化插件加载逻辑
This commit is contained in:
@@ -6,7 +6,6 @@ console.i18n("ms.core.ioc.completed", { scope: global.scope, time: (Date.now() -
|
||||
import * as yaml from 'js-yaml'
|
||||
import http from '@ccms/common/dist/http'
|
||||
import * as fs from '@ccms/common/dist/fs'
|
||||
import { VersionUtils } from '@ccms/common/dist/version'
|
||||
|
||||
const UUID = Java.type('java.util.UUID')
|
||||
const MiaoScriptAPI = Java.type('pw.yumc.MiaoScript.api.MiaoScriptAPI')
|
||||
@@ -15,22 +14,18 @@ const MiaoScriptAPI = Java.type('pw.yumc.MiaoScript.api.MiaoScriptAPI')
|
||||
class MiaoScriptCore {
|
||||
@Autowired(server.Console)
|
||||
private Console: Console
|
||||
@Autowired(plugin.PluginFolder)
|
||||
private pluginFolder: string
|
||||
@Autowired()
|
||||
private taskManager: task.TaskManager
|
||||
@Autowired()
|
||||
private pluginManager: plugin.PluginManager
|
||||
|
||||
enable() {
|
||||
process.emit('core.before.enable')
|
||||
process.emit('core.before.enable', this)
|
||||
this.loadServerConsole()
|
||||
try {
|
||||
MiaoScriptAPI.setPluginManager(this.pluginManager)
|
||||
} catch (error) {
|
||||
}
|
||||
this.loadPlugins()
|
||||
process.emit('core.after.enable')
|
||||
process.emit('core.enable', this)
|
||||
process.emit('core.after.enable', this)
|
||||
console.i18n("ms.core.engine.completed", {
|
||||
loader: base.version,
|
||||
version: 'v' + global.ScriptEngineVersion,
|
||||
@@ -40,40 +35,28 @@ class MiaoScriptCore {
|
||||
}
|
||||
|
||||
loadServerConsole() {
|
||||
process.emit('core.before.load.console')
|
||||
process.emit('core.before.load.console', this)
|
||||
//@ts-ignore
|
||||
global.setGlobal('console', new this.Console(), { writable: false, configurable: false })
|
||||
process.emit('core.after.load.console')
|
||||
}
|
||||
|
||||
loadPlugins() {
|
||||
process.emit('core.before.load.plugins')
|
||||
let loadPluginStartTime = new Date().getTime()
|
||||
console.i18n("ms.core.plugin.initialize")
|
||||
this.pluginManager.scan(this.pluginFolder)
|
||||
this.pluginManager.build()
|
||||
this.pluginManager.load(this.pluginManager.getPlugins())
|
||||
this.pluginManager.enable(this.pluginManager.getPlugins())
|
||||
console.i18n("ms.core.plugin.completed", { time: (new Date().getTime() - loadPluginStartTime) / 1000 })
|
||||
process.emit('core.after.load.plugins')
|
||||
process.emit('core.after.load.console', this)
|
||||
}
|
||||
|
||||
disable() {
|
||||
process.emit('core.before.disable')
|
||||
process.emit('core.before.disable', this)
|
||||
let disableStartTime = Date.now()
|
||||
console.i18n("ms.core.engine.disable")
|
||||
this.pluginManager.disable(this.pluginManager.getPlugins())
|
||||
this.taskManager.disable()
|
||||
process.emit('core.after.disable')
|
||||
process.emit('core.disable', this)
|
||||
process.emit('core.after.disable', this)
|
||||
loadCoreScript('exit')
|
||||
process.emit('core.before.exit')
|
||||
process.emit('core.before.exit', this)
|
||||
process.exit(0)
|
||||
process.emit('core.exit', this)
|
||||
console.i18n("ms.core.engine.disable.finish", {
|
||||
loader: base.version,
|
||||
version: 'v' + global.ScriptEngineVersion,
|
||||
time: (new Date().getTime() - disableStartTime) / 1000
|
||||
})
|
||||
process.emit('core.after.exit')
|
||||
process.emit('core.after.exit', this)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,14 +149,12 @@ function initialize() {
|
||||
global.setGlobal('loadCoreScript', loadCoreScript)
|
||||
loadCoreScript('initialize')
|
||||
try {
|
||||
let core = createCore()
|
||||
return VersionUtils.isGreaterOrEqual(base.version, '0.22.0') ? core : core.enable()
|
||||
return createCore()
|
||||
} catch (error: any) {
|
||||
let core = { enable: () => () => console.i18n('ms.core.engine.disable.abnormal') }
|
||||
console.i18n("core.initialize.error", { error })
|
||||
jsconsole.getStackTrace(error, false).forEach(line => console.log(line))
|
||||
process.emit('core.initialize.error')
|
||||
return VersionUtils.isGreaterOrEqual(base.version, '0.22.0') ? core : core.enable()
|
||||
return { enable: () => () => console.i18n('ms.core.engine.disable.abnormal') }
|
||||
} finally {
|
||||
process.emit('core.after.initialize')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user