From 393ae6ce254b694e27add7f4f6da51d69de3ba73 Mon Sep 17 00:00:00 2001 From: MiaoWoo Date: Mon, 11 May 2020 17:22:45 +0800 Subject: [PATCH] feat: support online load plugin Signed-off-by: MiaoWoo --- .../plugins/src/MiaoScriptPackageManager.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/plugins/src/MiaoScriptPackageManager.ts b/packages/plugins/src/MiaoScriptPackageManager.ts index 18d04be3..555120b8 100644 --- a/packages/plugins/src/MiaoScriptPackageManager.ts +++ b/packages/plugins/src/MiaoScriptPackageManager.ts @@ -79,7 +79,12 @@ export class MiaoScriptPackageManager extends interfaces.Plugin { main(sender: any, command: string, args: string[]) { let cmdKey = 'cmd' + args[0] - if (!this[cmdKey] || args[0] === 'help') { + if (!this[cmdKey]) { + this.logger.sender(sender, '§4未知的子命令: §c' + args[0]) + this.logger.sender(sender, '§6请执行 §b/' + command + ' §ahelp §6查看帮助!') + return; + } + if (args[0] === 'help') { this.logger.sender(sender, help); return; } @@ -87,6 +92,15 @@ export class MiaoScriptPackageManager extends interfaces.Plugin { this[cmdKey](sender, ...args); } + cmdload(sender: any, name: string) { + let pluginFile = fs.concat(__dirname + '', name); + if (!fs.exists(pluginFile)) { + this.logger.sender(sender, '§4插件 §c' + pluginFile + ' §4不存在!') + return; + } + this.pluginManager.loadFromFile(fs.file(pluginFile)); + } + cmdlist(sender: any, type: string = 'cloud') { if (type == "install") { this.i18n(sender, 'list.install.header') @@ -163,6 +177,7 @@ export class MiaoScriptPackageManager extends interfaces.Plugin { try { this.logger.sender(sender, '§6Reloading §3MiaoScript Engine...'); ScriptEngineContextHolder.disableEngine(); + Packages.java.lang.System.gc(); ScriptEngineContextHolder.enableEngine(); this.logger.sender(sender, '§3MiaoScript Engine §6Reload §aSuccessful...'); } catch (ex) {