From 87b7c66282a37339eac30e940ea7e655874b39db Mon Sep 17 00:00:00 2001 From: MiaoWoo Date: Mon, 4 Apr 2022 04:27:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=90=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E6=9D=83=E9=99=90=E5=A4=84=E7=90=86=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: MiaoWoo --- packages/plugin/src/command.ts | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/packages/plugin/src/command.ts b/packages/plugin/src/command.ts index 0c0f2c90..95ec03d5 100644 --- a/packages/plugin/src/command.ts +++ b/packages/plugin/src/command.ts @@ -57,6 +57,7 @@ export class PluginCommandManager { let subcommandexec = pluginInstance[cmdKey] if (!subcommandexec) { subcommandexec = pluginInstance['cmdmain'] + subcommand = 'main' } else { args.shift() } @@ -66,30 +67,37 @@ export class PluginCommandManager { sender, pluginInstance['cmdhelp'] ? `§6请执行 §b/${command} §ahelp §6查看帮助!` : - `§b版本: §a ${pluginInstance.description.version}` + [ + `§6插件: §b${pluginInstance.description.name}`, + `§6版本: §a${pluginInstance.description.version}` + ] ) return } let permission: string - if (typeof cmd.permission == "string") { - permission = cmd.permission as string - } else if (cmd.permission) { - permission = `${pluginInstance.description.name.toLocaleLowerCase()}.${command}.${subcommand}` - } - if (sender.hasPermission && !sender.hasPermission(permission)) { - return pluginInstance.logger.sender(sender, `§c你需要 ${permission} 权限 才可执行此命令.`) + if (cmd.permission && sender.hasPermission) { + if (typeof cmd.permission == "string") { + permission = cmd.permission as string + } else { + permission = `${pluginInstance.description.name.toLocaleLowerCase()}.${command}.${subcommand}` + } + if (!sender.hasPermission(permission)) { + return pluginInstance.logger.sender(sender, `§c你需要 ${permission} 权限 才可执行此命令.`) + } } return subcommandexec.apply(pluginInstance, [sender, ...args]) } let originCompleter = cmdCompleter cmdCompleter = (sender: any, command: string, args: string[]) => { let permission: string - if (typeof cmd.permission == "string") { - permission = cmd.permission as string - } else if (cmd.permission) { - permission = `${pluginInstance.description.name.toLocaleLowerCase()}.${command}` + if (cmd.permission && sender.hasPermission) { + if (typeof cmd.permission == "string") { + permission = cmd.permission as string + } else { + permission = `${pluginInstance.description.name.toLocaleLowerCase()}.${command}` + } + if (!sender.hasPermission(permission)) { return [] } } - if (sender.hasPermission && !sender.hasPermission(permission)) { return [] } return (args.length == 1 ? cmdSubCache : []).concat(originCompleter?.apply(pluginInstance, [sender, command, args]) || []) } }