Him188 hace 5 años
padre
commit
58eac01cad

+ 4 - 1
.gitignore

@@ -43,4 +43,7 @@ keys.properties
 /plugins/
 
 bintray.user.txt
-bintray.key.txt
+bintray.key.txt
+
+token.txt
+/*/token.txt

+ 1 - 1
backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/BuiltInCommands.kt

@@ -48,7 +48,7 @@ object BuiltInCommands {
     }
 
     object Help : SimpleCommand(
-        ConsoleCommandOwner, "help", "?",
+        ConsoleCommandOwner, "help",
         description = "Gets help about the console."
     ) {
         init {

+ 13 - 2
frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt

@@ -21,9 +21,12 @@
 package net.mamoe.mirai.console.pure
 
 import kotlinx.coroutines.isActive
+import net.mamoe.mirai.console.MiraiConsole
 import net.mamoe.mirai.console.command.CommandExecuteStatus
+import net.mamoe.mirai.console.command.CommandPrefix
 import net.mamoe.mirai.console.command.ConsoleCommandSender
 import net.mamoe.mirai.console.command.executeCommandDetailed
+import net.mamoe.mirai.console.job
 import net.mamoe.mirai.console.pure.MiraiConsolePure.Companion.start
 import net.mamoe.mirai.console.utils.ConsoleInternalAPI
 import net.mamoe.mirai.message.data.Message
@@ -42,8 +45,8 @@ object MiraiConsolePureLoader {
 
 
 internal fun startup() {
-    startConsoleThread()
     MiraiConsolePure().start()
+    startConsoleThread()
 }
 
 internal fun startConsoleThread() {
@@ -51,7 +54,11 @@ internal fun startConsoleThread() {
         val consoleLogger = DefaultLogger("Console")
         kotlinx.coroutines.runBlocking {
             while (isActive) {
-                val next = MiraiConsoleFrontEndPure.requestInput("")
+                val next = MiraiConsoleFrontEndPure.requestInput("").let {
+                    if (it.startsWith(CommandPrefix)) {
+                        it
+                    } else CommandPrefix + it
+                }
                 if (next.isBlank()) {
                     continue
                 }
@@ -71,6 +78,10 @@ internal fun startConsoleThread() {
                 }
             }
         }
+    }.let { thread ->
+        MiraiConsole.job.invokeOnCompletion {
+            thread.interrupt()
+        }
     }
 }