From ae4ab2accaec324ed8d97ac5de051676a04926f0 Mon Sep 17 00:00:00 2001 From: Him188 Date: Tue, 9 Nov 2021 21:43:55 +0000 Subject: [PATCH] Extract generation of help message as HelpCommand.generateDefaultHelp, helps #416 --- .../src/command/BuiltInCommands.kt | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/backend/mirai-console/src/command/BuiltInCommands.kt b/backend/mirai-console/src/command/BuiltInCommands.kt index f8e6e5d9d..db87ae711 100644 --- a/backend/mirai-console/src/command/BuiltInCommands.kt +++ b/backend/mirai-console/src/command/BuiltInCommands.kt @@ -93,18 +93,27 @@ public object BuiltInCommands { ConsoleCommandOwner, "help", description = "查看指令帮助", ), BuiltInCommandInternal { + + /** + * @since 2.8.0-RC + */ + // for https://github.com/mamoe/mirai-console/issues/416 + @JvmStatic + public fun generateDefaultHelp(permitteeId: PermitteeId): String { + return allRegisteredCommands + .asSequence() + .filter { permitteeId.hasPermission(it.permission) } + .joinToString("\n\n") { command -> + val lines = command.usage.lines() + if (lines.isEmpty()) "/${command.primaryName} ${command.description}" + else + "◆ " + lines.first() + "\n" + lines.drop(1).joinToString("\n") { " $it" } + }.lines().filterNot(String::isBlank).joinToString("\n") + } + @Handler public suspend fun CommandSender.handle() { - sendMessage( - allRegisteredCommands - .filter { hasPermission(it.permission) } - .joinToString("\n\n") { command -> - val lines = command.usage.lines() - if (lines.isEmpty()) "/${command.primaryName} ${command.description}" - else - "◆ " + lines.first() + "\n" + lines.drop(1).joinToString("\n") { " $it" } - }.lines().filterNot(String::isBlank).joinToString("\n") - ) + sendMessage(generateDefaultHelp(this.permitteeId)) } }