我有另外一套指令体系,我想注册一个指令来执行那个体系的指令,代码如下:
@Component
class SmCommandInvoker: RawCommand(
SpringMiraiStartPlugin, primaryName,
description = "执行SpringMirai指令"
) {
companion object {
private const val primaryName = "sm"
}
override suspend fun CommandSender.onCommand(message: MessageChain) {
val command = message.content.substringAfter(primaryName).trimStart()
val logger = MiraiLogger.create("sm")
logger.info("message: ${message.content}")
logger.info("command: $command")
execSmCommand(command) {
runBlocking {
sendMessage(it)
}
}
}
}
其中execSmCommand定义如下:
/**
* 执行sm指令
* @param line 一行指令
* @param fn 需要回复消息时的回调
*/
fun execSmCommand(line: String, fn: (String) -> Unit)
输出如下:
> /sm 权限 我的权限
2021-06-17 23:54:05 I/stdout: 2021-06-17 23:54:05.925 INFO 12568 --- [atcher-worker-2] sm : message: 权限我的权限
2021-06-17 23:54:05 I/stdout:
2021-06-17 23:54:05 I/stdout: 2021-06-17 23:54:05.925 INFO 12568 --- [atcher-worker-2] sm : command: 权限我的权限
2021-06-17 23:54:05 I/stdout:
很显然,“权限”和“我的权限”之间的空格被去掉了,而在我的指令体系中必须要这个空格,所以导致我的指令无法正确运行,请问如何解决此问题?