diff --git a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt index dab1a70a8..e24447a91 100644 --- a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt +++ b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/ConsolePureSettings.kt @@ -40,4 +40,7 @@ public object ConsolePureSettings { @JvmField var noConsoleSafeReading = false + + @JvmField + var noConsoleReadingReplacement: String = "" } \ No newline at end of file diff --git a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt index 687417268..30b431fc6 100644 --- a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt +++ b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt @@ -69,6 +69,9 @@ object MiraiConsolePureLoader { "--safe-reading" to "[NoConsole] 如果启动此选项, console在获取用户输入的时候会获得一个安全的空字符串\n" + " 如果不启动, 将会直接 error", + "--reading-replacement " to + "[NoConsole] Console尝试读取命令的替换符, 默认是空字符串\n" + + " 使用此选项会自动开启 --safe-reading", ) val prefixPlaceholder = String(CharArray( help.maxOfOrNull { it.first.length }!! + 3 @@ -113,6 +116,18 @@ object MiraiConsolePureLoader { ConsolePureSettings.noAnsi = true ConsolePureSettings.setupAnsi = false } + "--reading-replacement" -> { + ConsolePureSettings.noConsoleSafeReading = true + if (iterator.hasNext()){ + ConsolePureSettings.noConsoleReadingReplacement = iterator.next() + } else { + println("Bad option `--reading-replacement`") + println("Usage: --reading-replacement ") + if (exitProcess) + exitProcess(1) + return + } + } "--safe-reading" -> { ConsolePureSettings.noConsoleSafeReading = true } @@ -120,7 +135,6 @@ object MiraiConsolePureLoader { println("Unknown option `$option`") printlnHelpMessage() if (exitProcess) - @Suppress("UNREACHABLE_CODE") exitProcess(1) return } diff --git a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt index 0694751a0..6be4975fa 100644 --- a/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt +++ b/frontend/mirai-console-pure/src/main/kotlin/net/mamoe/mirai/console/pure/noconsole/NoConsole.kt @@ -104,7 +104,7 @@ internal object AllEmptyLineReader : LineReader { @OptIn(ConsolePureExperimentalAPI::class) override fun readLine(): String = - if (ConsolePureSettings.noConsoleSafeReading) "" + if (ConsolePureSettings.noConsoleSafeReading) ConsolePureSettings.noConsoleReadingReplacement else error("Unsupported Reading line when console front-end closed.") override fun readLine(mask: Char?): String = readLine()