diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b0b3240..a9bd0a5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlinVersion = "2.0.10" -ronebotVersion = "1.12.2" +ronebotVersion = "1.12.4" shadowVersion = "8.3.0" okhttpVersion = "5.0.0-alpha.14" exposedVersion = "0.53.0" diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt index f9334ce..c759b6b 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt @@ -19,9 +19,9 @@ import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain import cn.rtast.rob.util.ob.OneBotListener -@CommandDescription("执行不同语言的代码片段") +@CommandDescription("执行不同语言的代码") class CompilerCommand : BaseCommand() { - override val commandNames = listOf("/compiler", "/exec") + override val commandNames = listOf("/compiler", "/exec", "/e") private val kotlinCompilerServer = "https://api.kotlinlang.org/api/2.0.20/compiler/run" private val glotCompilerServer = "https://glot.io/run" @@ -31,16 +31,22 @@ class CompilerCommand : BaseCommand() { message.reply("使用`/exec` <语言> <代码> 即可执行~") return } - val language = args.first() + var language = args.first() val code = args.drop(1).joinToString(" ") val response = when (language) { "kotlin", "Kotlin", "kt", "Kt", "KT" -> { Http.post( - kotlinCompilerServer, jsonBody = KCSPayload(listOf(KCSPayload.File(code))).toJson() + kotlinCompilerServer, + jsonBody = KCSPayload(listOf(KCSPayload.File(code))).toJson() ).text } else -> { + if (language == "js") language = "javascript" + if (language == "cs") language = "csharp" + if (language == "sh") language = "bash" + if (language == "asm") language = "assembly" + if (language == "py") language = "python" Http.post( "$glotCompilerServer/$language", params = mapOf("version" to "latest"), @@ -48,12 +54,16 @@ class CompilerCommand : BaseCommand() { ).stdout } } - val msg = MessageChain.Builder() - .addReply(message.messageId) - .addText("执行结果如下:") - .addNewLine() - .addText(response.replace("", "").replace("", "")) - .build() - listener.sendGroupMessage(message.groupId, msg) + try { + val msg = MessageChain.Builder() + .addReply(message.messageId) + .addText("执行结果如下:") + .addNewLine() + .addText(response.replace("", "").replace("", "")) + .build() + listener.sendGroupMessage(message.groupId, msg) + } catch (e: Exception) { + message.reply("执行错误: ${e.message}") + } } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/parse/CalculateCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/parse/CalculateCommand.kt index ff63e8c..d52da4e 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/parse/CalculateCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/parse/CalculateCommand.kt @@ -18,7 +18,6 @@ object CalculateCommand { return try { engine.eval(input) } catch (_: ScriptException) { - "Invalid expression" return null }.toString() }