Skip to content

Commit

Permalink
Chat command
Browse files Browse the repository at this point in the history
  • Loading branch information
Him188 committed Nov 19, 2020
1 parent 9936b34 commit 3b6a176
Show file tree
Hide file tree
Showing 6 changed files with 72 additions and 11 deletions.
17 changes: 15 additions & 2 deletions .run/RunMiraiKt.run.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="RunMiraiKt" type="JetRunConfigurationType" nameIsGenerated="true">
<module name="mirai-console-plugin-template.test"/>
<option name="VM_PARAMETERS" value=""/>
<option name="PROGRAM_PARAMETERS" value=""/>
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/>
<option name="ALTERNATIVE_JRE_PATH"/>
<option name="PASS_PARENT_ENVS" value="true"/>
<option name="MAIN_CLASS_NAME" value="org.example.mirai.plugin.RunMiraiKt"/>
<option name="MAIN_CLASS_NAME" value="net.mamoe.mirai.console.plugins.chat.command.RunMiraiKt"/>
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/run"/>
<module name=""/>
<method v="2">
<option name="Make" enabled="true"/>
</method>
</configuration>
<configuration default="false" name="RunMiraiKt" type="JetRunConfigurationType" nameIsGenerated="true">
<module name="chat-command.test"/>
<option name="VM_PARAMETERS" value=""/>
<option name="PROGRAM_PARAMETERS" value=""/>
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/>
<option name="ALTERNATIVE_JRE_PATH"/>
<option name="PASS_PARENT_ENVS" value="true"/>
<option name="MAIN_CLASS_NAME" value="net.mamoe.mirai.console.plugins.chat.command.RunMiraiKt"/>
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/run"/>
<method v="2">
<option name="Make" enabled="true"/>
Expand Down
21 changes: 21 additions & 0 deletions .run/chat-command [buildPlugin].run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="chat-command [buildPlugin]" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName"/>
<option name="externalProjectPath" value="$PROJECT_DIR$"/>
<option name="externalSystemIdString" value="GRADLE"/>
<option name="scriptParameters" value=""/>
<option name="taskDescriptions">
<list/>
</option>
<option name="taskNames">
<list>
<option value="buildPlugin"/>
</list>
</option>
<option name="vmOptions" value=""/>
</ExternalSystemSettings>
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2"/>
</configuration>
</component>
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# mirai-console-plugin-template
Template for Mirai Console plugins
# char-command
允许在聊天环境执行指令.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ plugins {
kotlin("jvm") version kotlinVersion
kotlin("plugin.serialization") version kotlinVersion

id("net.mamoe.mirai-console") version "1.0.0-dev-1"
id("net.mamoe.mirai-console") version "1.0.0-dev-2"
}

group = "net.mamoe"
Expand Down
34 changes: 33 additions & 1 deletion src/main/kotlin/PluginMain.kt
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,36 @@ object PluginMain : KotlinPlugin(
}

internal lateinit var commandListener: Listener<MessageEvent>
}
}

/*
@ConsoleExperimentalApi("This is unstable and might get changed")
override suspend fun catchExecutionException(e: Throwable) {
if (this is CommandSenderOnMessage<*>) {
val cause = e.rootCauseOrSelf
// CommandArgumentParserException 作为 IllegalCommandArgumentException 不会再进入此函数
// 已在
// - [console] CommandManagerImpl.commandListener
// - [terminal] ConsoleThread.kt
// 处理
val message = cause
.takeIf { it is CommandArgumentParserException }?.message
?: "${cause::class.simpleName.orEmpty()}: ${cause.message}"
sendMessage(message) // \n\n60 秒内发送 stacktrace 查看堆栈信息
this@AbstractCommandSender.launch(CoroutineName("stacktrace delayer from command")) {
if (fromEvent.nextMessageOrNull(60_000) {
it.message.contentEquals("stacktrace") || it.message.contentEquals("stack")
} != null) {
sendMessage(e.stackTraceToString())
}
}
} else {
sendMessage(e.stackTraceToString())
}
}
*/
5 changes: 0 additions & 5 deletions src/test/kotlin/RunMirai.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package net.mamoe.mirai.console.plugins.chat.command

import net.mamoe.mirai.alsoLogin
import net.mamoe.mirai.console.MiraiConsole
import net.mamoe.mirai.console.plugin.PluginManager.INSTANCE.enable
import net.mamoe.mirai.console.plugin.PluginManager.INSTANCE.load
Expand All @@ -12,9 +11,5 @@ suspend fun main() {
PluginMain.load()
PluginMain.enable()

val bot = MiraiConsole.addBot(123456, "") {
fileBasedDeviceInfo()
}.alsoLogin()

MiraiConsole.job.join()
}

0 comments on commit 3b6a176

Please sign in to comment.