Răsfoiți Sursa

fix predicate of SurplusArg exception

00ll00 5 ani în urmă
părinte
comite
49dfe13bfe

+ 2 - 1
src/main/kotlin/bot_luo_core/cli/CmdParser.kt

@@ -5,6 +5,7 @@ import bot_luo_core.cli.exceptions.*
 import bot_luo_core.cli.handlers.LiteralArgHandler
 import bot_luo_core.data.Config.CMD_PREFIX
 import net.mamoe.mirai.message.data.content
+import net.mamoe.mirai.message.data.isContentBlank
 import net.mamoe.mirai.message.data.isContentEmpty
 import kotlin.jvm.Throws
 import kotlin.reflect.KType
@@ -46,7 +47,7 @@ class CmdParser(private val reader: MessageReader) {
     fun finish() {
         val pos = reader.getCursor()
         val rem = reader.readRemainingMessage()
-        if (!rem.isContentEmpty()) throw SurplusArg(pos, rem.content)
+        if (!rem.isContentBlank()) throw SurplusArg(pos, rem.content)
     }
 
     @Throws(CmdParseFatal::class)

+ 2 - 1
src/main/kotlin/bot_luo_core/cli/commands/ExecuteCmd.kt

@@ -4,6 +4,7 @@ import bot_luo_core.cli.*
 import bot_luo_core.cli.annotation.Argument
 import bot_luo_core.cli.annotation.Command
 import bot_luo_core.cli.annotation.Method
+import bot_luo_core.cli.checkers.GroupCmdWorkingChecker
 import bot_luo_core.cli.checkers.UserParallelExecutingChecker
 import bot_luo_core.cli.exceptions.*
 import bot_luo_core.cli.handlers.MultiGroupArgHandler
@@ -28,7 +29,7 @@ import kotlin.reflect.KType
 )
 class ExecuteCmd(context: CmdContext) : Cmd(context) {
 
-    @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP, ignoreCheckers = [UserParallelExecutingChecker::class])
+    @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP, ignoreCheckers = [UserParallelExecutingChecker::class, GroupCmdWorkingChecker::class])
     fun run (
         @Argument("子命令", handler = ExecuteArgHandler::class)
         contexts: ArrayList<CmdContext>

+ 6 - 6
src/main/kotlin/bot_luo_core/cli/commands/ListCmd.kt

@@ -17,7 +17,7 @@ import kotlin.reflect.full.createInstance
 class ListCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.NORMAL, title = "命令列表")
-    suspend fun list (): CmdReceipt { with(context) {
+    fun list (): CmdReceipt { with(context) {
         val table = TableBuilder(4)
         table.th("命令列表 —— 群组 ${group.name}(${group.id})").br()
 
@@ -33,13 +33,13 @@ class ListCmd(context: CmdContext) : Cmd(context) {
             table.tr(if (working) "[√]" else "[×]").tb(cmd.display).tb("(${cmd.cmdName})")
         }
 
-        sendMessageWithLog(table.toString())
+        context.print(table.toString())
 
         return SUCCESS
     }}
 
     @Method(name = "detail", alias = ["d"], pmsLevel = CmdPermissionLevel.HIGH, title = "详细列表")
-    suspend fun listD (): CmdReceipt { with(context) {
+    fun listD (): CmdReceipt { with(context) {
         val table = TableBuilder(4)
         table.th("命令列表 —— 群组 ${group.name}(${group.id})").br()
 
@@ -50,13 +50,13 @@ class ListCmd(context: CmdContext) : Cmd(context) {
             } catch (ignore: CheckerFatal) {}
         }
 
-        sendMessageWithLog(table.toString())
+        context.print(table.toString())
 
         return SUCCESS
     }}
 
     @Method(name = "all", alias = ["a"], pmsLevel = CmdPermissionLevel.OP, title = "全部命令")
-    suspend fun listA (): CmdReceipt { with(context) {
+    fun listA (): CmdReceipt { with(context) {
         val table = TableBuilder(4)
         table.th("命令列表 —— 群组 ${group.name}(${group.id})").br()
 
@@ -64,7 +64,7 @@ class ListCmd(context: CmdContext) : Cmd(context) {
             table.tr(if (group.readCmdData(cex).working) "[√]" else "[×]").tb(cex.idFixed).tb(cex.subTitle)
         }
 
-        sendMessageWithLog(table.toString())
+        context.print(table.toString())
 
         return SUCCESS
     }}