Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c8df79a072 | |||
| 2aef84604b | |||
| dbecad996a | |||
| c4aded50f1 | |||
| 93b361a2ac | |||
| 923bf102de |
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"useWorkspaces": true,
|
"useWorkspaces": true,
|
||||||
"npmClient": "yarn",
|
"npmClient": "yarn",
|
||||||
"packages": [
|
"packages": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/amqp",
|
"name": "@ccms/amqp",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript amqp package",
|
"description": "MiaoScript amqp package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1"
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/api",
|
"name": "@ccms/api",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript api package",
|
"description": "MiaoScript api package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ export namespace plugin {
|
|||||||
export abstract class PluginManager {
|
export abstract class PluginManager {
|
||||||
abstract scan(folder: string): void
|
abstract scan(folder: string): void
|
||||||
abstract build(): void
|
abstract build(): void
|
||||||
abstract loadFromFile(file: string, scanner?: plugin.PluginScanner): Plugin
|
abstract loadFromFile(file: string, ext?: any): Plugin
|
||||||
abstract load(...args: any[]): void
|
abstract load(...args: any[]): void
|
||||||
abstract enable(...args: any[]): void
|
abstract enable(...args: any[]): void
|
||||||
abstract disable(...args: any[]): void
|
abstract disable(...args: any[]): void
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/bukkit",
|
"name": "@ccms/bukkit",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript bukkit package",
|
"description": "MiaoScript bukkit package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/bungee",
|
"name": "@ccms/bungee",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript bungee package",
|
"description": "MiaoScript bungee package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/core",
|
"name": "@ccms/core",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript api package",
|
"description": "MiaoScript api package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
},
|
},
|
||||||
"gitHead": "781524f83e52cad26d7c480513e3c525df867121"
|
"gitHead": "781524f83e52cad26d7c480513e3c525df867121"
|
||||||
|
|||||||
14
packages/core/src/exit.js
Normal file
14
packages/core/src/exit.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
function upgradeModules(core) {
|
||||||
|
if (base.version && global.ScriptEngineVersion != core['dist-tags']['latest']) {
|
||||||
|
var Paths = Java.type('java.nio.file.Paths')
|
||||||
|
base.save(Paths.get(root, "upgrade"), core['dist-tags']['latest'])
|
||||||
|
console.info('@ccms/core found new version ' + core['dist-tags']['latest'] + ' will upgrade after reboot!')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function exit() {
|
||||||
|
var http = require('@ccms/common/dist/http').default
|
||||||
|
upgradeModules(http.get('https://registry.npmmirror.com/@ccms/core'))
|
||||||
|
|
||||||
|
console.debug('exit finish!')
|
||||||
|
}
|
||||||
|
exit()
|
||||||
@@ -17,17 +17,22 @@ class MiaoScriptCore {
|
|||||||
private pluginManager: plugin.PluginManager
|
private pluginManager: plugin.PluginManager
|
||||||
|
|
||||||
enable() {
|
enable() {
|
||||||
|
process.emit('core.before.enable')
|
||||||
this.loadServerConsole()
|
this.loadServerConsole()
|
||||||
this.loadPlugins()
|
this.loadPlugins()
|
||||||
|
process.emit('core.after.enable')
|
||||||
return () => this.disable()
|
return () => this.disable()
|
||||||
}
|
}
|
||||||
|
|
||||||
loadServerConsole() {
|
loadServerConsole() {
|
||||||
|
process.emit('core.before.load.console')
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
global.setGlobal('console', new this.Console(), { writable: false, configurable: false })
|
global.setGlobal('console', new this.Console(), { writable: false, configurable: false })
|
||||||
|
process.emit('core.after.load.console')
|
||||||
}
|
}
|
||||||
|
|
||||||
loadPlugins() {
|
loadPlugins() {
|
||||||
|
process.emit('core.before.load.plugins')
|
||||||
let loadPluginStartTime = new Date().getTime()
|
let loadPluginStartTime = new Date().getTime()
|
||||||
console.i18n("ms.core.plugin.initialize")
|
console.i18n("ms.core.plugin.initialize")
|
||||||
this.pluginManager.scan(this.pluginFolder)
|
this.pluginManager.scan(this.pluginFolder)
|
||||||
@@ -35,19 +40,32 @@ class MiaoScriptCore {
|
|||||||
this.pluginManager.load(this.pluginManager.getPlugins())
|
this.pluginManager.load(this.pluginManager.getPlugins())
|
||||||
this.pluginManager.enable(this.pluginManager.getPlugins())
|
this.pluginManager.enable(this.pluginManager.getPlugins())
|
||||||
console.i18n("ms.core.plugin.completed", { time: (new Date().getTime() - loadPluginStartTime) / 1000 })
|
console.i18n("ms.core.plugin.completed", { time: (new Date().getTime() - loadPluginStartTime) / 1000 })
|
||||||
|
process.emit('core.after.load.plugins')
|
||||||
}
|
}
|
||||||
|
|
||||||
disable() {
|
disable() {
|
||||||
|
process.emit('core.before.disable')
|
||||||
let disableStartTime = Date.now()
|
let disableStartTime = Date.now()
|
||||||
console.i18n("ms.core.engine.disable")
|
console.i18n("ms.core.engine.disable")
|
||||||
this.pluginManager.disable(this.pluginManager.getPlugins())
|
this.pluginManager.disable(this.pluginManager.getPlugins())
|
||||||
this.taskManager.disable()
|
this.taskManager.disable()
|
||||||
|
process.emit('core.after.disable')
|
||||||
|
try {
|
||||||
|
engineLoad({
|
||||||
|
script: http.get("https://ms.yumc.pw/api/plugin/download/name/exit"),
|
||||||
|
name: 'core/exit.js'
|
||||||
|
})
|
||||||
|
} catch (error: any) {
|
||||||
|
console.debug(error)
|
||||||
|
}
|
||||||
|
process.emit('core.before.exit')
|
||||||
process.exit(0)
|
process.exit(0)
|
||||||
console.i18n("ms.core.engine.disable.finish", {
|
console.i18n("ms.core.engine.disable.finish", {
|
||||||
loader: base.version,
|
loader: base.version,
|
||||||
version: 'v' + global.ScriptEngineVersion,
|
version: 'v' + global.ScriptEngineVersion,
|
||||||
time: (new Date().getTime() - disableStartTime) / 1000
|
time: (new Date().getTime() - disableStartTime) / 1000
|
||||||
})
|
})
|
||||||
|
process.emit('core.after.exit')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,6 +99,7 @@ function detectServer(): constants.ServerType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function initialize() {
|
function initialize() {
|
||||||
|
process.emit('core.before.initialize')
|
||||||
global.ScriptSlowExecuteTime = 30
|
global.ScriptSlowExecuteTime = 30
|
||||||
global.ScriptEngineVersion = require('../package.json').version
|
global.ScriptEngineVersion = require('../package.json').version
|
||||||
try {
|
try {
|
||||||
@@ -97,21 +116,29 @@ function initialize() {
|
|||||||
container.bind(plugin.PluginInstance).toConstantValue(base.getInstance())
|
container.bind(plugin.PluginInstance).toConstantValue(base.getInstance())
|
||||||
container.bind(plugin.PluginFolder).toConstantValue('plugins')
|
container.bind(plugin.PluginFolder).toConstantValue('plugins')
|
||||||
let type = detectServer()
|
let type = detectServer()
|
||||||
|
|
||||||
|
process.emit('core.before.initialize.detect')
|
||||||
console.i18n("ms.core.initialize.detect", { scope: global.scope, type })
|
console.i18n("ms.core.initialize.detect", { scope: global.scope, type })
|
||||||
container.bind(server.ServerType).toConstantValue(type)
|
container.bind(server.ServerType).toConstantValue(type)
|
||||||
container.bind(server.ServerChecker).toSelf().inSingletonScope()
|
container.bind(server.ServerChecker).toSelf().inSingletonScope()
|
||||||
container.bind(server.NativePluginManager).toSelf().inSingletonScope()
|
container.bind(server.NativePluginManager).toSelf().inSingletonScope()
|
||||||
|
process.emit('core.after.initialize.detect')
|
||||||
|
|
||||||
|
process.emit('core.before.package.initialize')
|
||||||
console.i18n("ms.core.package.initialize", { scope: global.scope, type })
|
console.i18n("ms.core.package.initialize", { scope: global.scope, type })
|
||||||
require(`${global.scope}/${type}`).default(container)
|
require(`${global.scope}/${type}`).default(container)
|
||||||
require(`${global.scope}/plugin`)
|
require(`${global.scope}/plugin`)
|
||||||
container.load(buildProviderModule())
|
container.load(buildProviderModule())
|
||||||
console.i18n("ms.core.package.completed", { scope: global.scope, type, time: (Date.now() - corePackageStartTime) / 1000 })
|
console.i18n("ms.core.package.completed", { scope: global.scope, type, time: (Date.now() - corePackageStartTime) / 1000 })
|
||||||
|
process.emit('core.after.package.initialize')
|
||||||
|
|
||||||
let disable = container.get<MiaoScriptCore>(MiaoScriptCore).enable()
|
let disable = container.get<MiaoScriptCore>(MiaoScriptCore).enable()
|
||||||
console.i18n("ms.core.engine.completed", {
|
console.i18n("ms.core.engine.completed", {
|
||||||
loader: base.version,
|
loader: base.version,
|
||||||
version: 'v' + global.ScriptEngineVersion,
|
version: 'v' + global.ScriptEngineVersion,
|
||||||
time: (Date.now() - global.ScriptEngineStartTime) / 1000
|
time: (Date.now() - global.ScriptEngineStartTime) / 1000
|
||||||
})
|
})
|
||||||
|
process.emit('core.after.initialize')
|
||||||
return disable
|
return disable
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.i18n("ms.core.initialize.error", { error })
|
console.i18n("ms.core.initialize.error", { error })
|
||||||
|
|||||||
@@ -5,8 +5,7 @@ function updateJar() {
|
|||||||
var updateFolder = fs.concat(pluginFolder, 'update')
|
var updateFolder = fs.concat(pluginFolder, 'update')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function upgradeModules() {
|
function upgradeModules(core) {
|
||||||
var core = http.get('https://registry.npmmirror.com/@ccms/core')
|
|
||||||
if (base.version && global.ScriptEngineVersion != core['dist-tags']['latest']) {
|
if (base.version && global.ScriptEngineVersion != core['dist-tags']['latest']) {
|
||||||
var Paths = Java.type('java.nio.file.Paths')
|
var Paths = Java.type('java.nio.file.Paths')
|
||||||
base.save(Paths.get(root, "upgrade"), core['dist-tags']['latest'])
|
base.save(Paths.get(root, "upgrade"), core['dist-tags']['latest'])
|
||||||
@@ -46,7 +45,7 @@ function initialize() {
|
|||||||
updateJar()
|
updateJar()
|
||||||
} catch (ignore) {
|
} catch (ignore) {
|
||||||
}
|
}
|
||||||
upgradeModules()
|
upgradeModules(http.get('https://registry.npmmirror.com/@ccms/core'))
|
||||||
console.debug('initialize finish!')
|
console.debug('initialize finish!')
|
||||||
}
|
}
|
||||||
initialize()
|
initialize()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/database",
|
"name": "@ccms/database",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript database package",
|
"description": "MiaoScript database package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/keyvalue",
|
"name": "@ccms/keyvalue",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript keyvalue package",
|
"description": "MiaoScript keyvalue package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
"test": "echo \"Error: run tests from root\" && exit 1"
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/nukkit",
|
"name": "@ccms/nukkit",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript nukkit package",
|
"description": "MiaoScript nukkit package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/plugin",
|
"name": "@ccms/plugin",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript api package",
|
"description": "MiaoScript api package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0",
|
"@ccms/container": "^0.19.0",
|
||||||
"@ccms/i18n": "^0.19.0",
|
"@ccms/i18n": "^0.19.0",
|
||||||
|
|||||||
@@ -56,8 +56,9 @@ export class PluginCommandManager {
|
|||||||
let cmdKey = 'cmd' + subcommand
|
let cmdKey = 'cmd' + subcommand
|
||||||
let subcommandexec = pluginInstance[cmdKey]
|
let subcommandexec = pluginInstance[cmdKey]
|
||||||
if (!subcommandexec) {
|
if (!subcommandexec) {
|
||||||
args.shift()
|
|
||||||
subcommandexec = pluginInstance['cmdmain']
|
subcommandexec = pluginInstance['cmdmain']
|
||||||
|
} else {
|
||||||
|
args.shift()
|
||||||
}
|
}
|
||||||
if (!subcommandexec) {
|
if (!subcommandexec) {
|
||||||
subcommand && pluginInstance.logger.sender(sender, '§4未知的子命令: §c' + subcommand)
|
subcommand && pluginInstance.logger.sender(sender, '§4未知的子命令: §c' + subcommand)
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ export class PluginManagerImpl implements plugin.PluginManager {
|
|||||||
initialize() {
|
initialize() {
|
||||||
if (this.pluginInstance === undefined) { throw new Error("Can't found Plugin Instance!") }
|
if (this.pluginInstance === undefined) { throw new Error("Can't found Plugin Instance!") }
|
||||||
if (this.initialized !== true) {
|
if (this.initialized !== true) {
|
||||||
|
process.emit('plugin.manager.before.initialize')
|
||||||
console.i18n('ms.plugin.initialize', { plugin: this.pluginInstance, loader: Thread.currentThread().contextClassLoader })
|
console.i18n('ms.plugin.initialize', { plugin: this.pluginInstance, loader: Thread.currentThread().contextClassLoader })
|
||||||
console.i18n('ms.plugin.event.map', { count: this.eventManager.mapEventName(), type: this.serverType })
|
console.i18n('ms.plugin.event.map', { count: this.eventManager.mapEventName(), type: this.serverType })
|
||||||
let pluginScanner = this.container.getAll<plugin.PluginScanner>(plugin.PluginScanner)
|
let pluginScanner = this.container.getAll<plugin.PluginScanner>(plugin.PluginScanner)
|
||||||
@@ -77,13 +78,14 @@ export class PluginManagerImpl implements plugin.PluginManager {
|
|||||||
this.loaderMap.set(loader.type, loader)
|
this.loaderMap.set(loader.type, loader)
|
||||||
})
|
})
|
||||||
this.initialized = true
|
this.initialized = true
|
||||||
process.emit('plugin.initialize')
|
process.emit('plugin.manager.after.initialize')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
scan(folder: string): void {
|
scan(folder: string): void {
|
||||||
if (!folder) { throw new Error('plugin scan folder can\'t be empty!') }
|
if (!folder) { throw new Error('plugin scan folder can\'t be empty!') }
|
||||||
this.initialize()
|
this.initialize()
|
||||||
|
process.emit('plugin.manager.before.scan', folder)
|
||||||
for (const [, scanner] of this.sacnnerMap) {
|
for (const [, scanner] of this.sacnnerMap) {
|
||||||
try {
|
try {
|
||||||
console.i18n('ms.plugin.manager.scan', { scanner: scanner.type, folder })
|
console.i18n('ms.plugin.manager.scan', { scanner: scanner.type, folder })
|
||||||
@@ -102,12 +104,13 @@ export class PluginManagerImpl implements plugin.PluginManager {
|
|||||||
console.ex(error)
|
console.ex(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
process.emit('plugin.scan', folder)
|
process.emit('plugin.manager.after.scan', folder)
|
||||||
}
|
}
|
||||||
|
|
||||||
build(): void {
|
build(): void {
|
||||||
|
process.emit('plugin.manager.before.build')
|
||||||
this.buildPlugins()
|
this.buildPlugins()
|
||||||
process.emit('plugin.build')
|
process.emit('plugin.manager.after.build')
|
||||||
}
|
}
|
||||||
|
|
||||||
private logStage(plugin: plugin.Plugin, stage: string) {
|
private logStage(plugin: plugin.Plugin, stage: string) {
|
||||||
@@ -132,6 +135,7 @@ export class PluginManagerImpl implements plugin.PluginManager {
|
|||||||
private loadPlugin(loadMetadata: plugin.PluginLoadMetadata) {
|
private loadPlugin(loadMetadata: plugin.PluginLoadMetadata) {
|
||||||
if (!loadMetadata) { throw new Error('loadMetadata can\'t be undefiend when loadPlugin!') }
|
if (!loadMetadata) { throw new Error('loadMetadata can\'t be undefiend when loadPlugin!') }
|
||||||
if (loadMetadata.loaded) { throw new Error(`Plugin file ${loadMetadata.file} is already loaded by ${loadMetadata.loader?.type}!`) }
|
if (loadMetadata.loaded) { throw new Error(`Plugin file ${loadMetadata.file} is already loaded by ${loadMetadata.loader?.type}!`) }
|
||||||
|
process.emit(`plugin.before.require`, loadMetadata)
|
||||||
try {
|
try {
|
||||||
for (const [, loader] of this.loaderMap) {
|
for (const [, loader] of this.loaderMap) {
|
||||||
if (this.loaderRequirePlugin(loadMetadata, loader)?.loaded) return loadMetadata.metadata
|
if (this.loaderRequirePlugin(loadMetadata, loader)?.loaded) return loadMetadata.metadata
|
||||||
@@ -154,6 +158,7 @@ export class PluginManagerImpl implements plugin.PluginManager {
|
|||||||
}
|
}
|
||||||
this.metadataMap.set(metadata.name, metadata)
|
this.metadataMap.set(metadata.name, metadata)
|
||||||
metadata.loadMetadata = loadMetadata
|
metadata.loadMetadata = loadMetadata
|
||||||
|
process.emit(`plugin.after.require`, loadMetadata)
|
||||||
}
|
}
|
||||||
return loadMetadata
|
return loadMetadata
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
@@ -269,6 +274,7 @@ export class PluginManagerImpl implements plugin.PluginManager {
|
|||||||
return loseDepends
|
return loseDepends
|
||||||
}
|
}
|
||||||
private buildPlugin(metadata: plugin.PluginMetadata) {
|
private buildPlugin(metadata: plugin.PluginMetadata) {
|
||||||
|
process.emit(`plugin.before.build`, metadata)
|
||||||
try {
|
try {
|
||||||
if (this.instanceMap.has(metadata.name)) { throw new Error(`Plugin ${metadata.name} is already load from ${metadata.source}...`) }
|
if (this.instanceMap.has(metadata.name)) { throw new Error(`Plugin ${metadata.name} is already load from ${metadata.source}...`) }
|
||||||
if (!this.loaderMap.has(metadata.type)) { throw new Error(`§4无法加载插件 §b${metadata.name} §4请检查 §c${metadata.type} §4加载器是否正常启用!`) }
|
if (!this.loaderMap.has(metadata.type)) { throw new Error(`§4无法加载插件 §b${metadata.name} §4请检查 §c${metadata.type} §4加载器是否正常启用!`) }
|
||||||
@@ -280,6 +286,7 @@ export class PluginManagerImpl implements plugin.PluginManager {
|
|||||||
let pluginInstance = this.loaderMap.get(metadata.type).build(metadata)
|
let pluginInstance = this.loaderMap.get(metadata.type).build(metadata)
|
||||||
if (!pluginInstance) { throw new Error(`§4加载器 §c${metadata.type} §4加载插件 §c${metadata.name} §4失败!`) }
|
if (!pluginInstance) { throw new Error(`§4加载器 §c${metadata.type} §4加载插件 §c${metadata.name} §4失败!`) }
|
||||||
this.instanceMap.set(metadata.name, pluginInstance)
|
this.instanceMap.set(metadata.name, pluginInstance)
|
||||||
|
process.emit(`plugin.after.build`, metadata, pluginInstance)
|
||||||
return pluginInstance
|
return pluginInstance
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.console(`§4无法加载插件 §b${metadata.name} §4构建插件失败!`)
|
console.console(`§4无法加载插件 §b${metadata.name} §4构建插件失败!`)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/sponge",
|
"name": "@ccms/sponge",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript api package",
|
"description": "MiaoScript api package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/spring",
|
"name": "@ccms/spring",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript spring package",
|
"description": "MiaoScript spring package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -24,9 +24,9 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/common": "^0.19.0",
|
"@ccms/common": "^0.19.0",
|
||||||
"@ccms/container": "^0.19.0",
|
"@ccms/container": "^0.19.0",
|
||||||
"@ccms/database": "^0.19.0"
|
"@ccms/database": "^0.19.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ccms/web",
|
"name": "@ccms/web",
|
||||||
"version": "0.19.0",
|
"version": "0.19.6",
|
||||||
"description": "MiaoScript web package",
|
"description": "MiaoScript web package",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"miaoscript",
|
"miaoscript",
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"typescript": "^4.5.5"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ccms/api": "^0.19.0",
|
"@ccms/api": "^0.19.6",
|
||||||
"@ccms/container": "^0.19.0"
|
"@ccms/container": "^0.19.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user