一个方法是增加一个 Job:
val job = SupervisorJob()
val eventChannel = GlobalEventChannel.parentContext(job)
eventChannel.subscribe...
job.cancel() // 取消全部监听
另一个方法就是你说的在监听器里 return STOPPED。但这个方法可能比上面那个方法麻烦一些。
一个方法是增加一个 Job:
val job = SupervisorJob()
val eventChannel = GlobalEventChannel.parentContext(job)
eventChannel.subscribe...
job.cancel() // 取消全部监听
另一个方法就是你说的在监听器里 return STOPPED。但这个方法可能比上面那个方法麻烦一些。
@michael1015198808 事件的执行共享 Kotlin 协程的全局线程池(可能有 64 个线程)。协程运行在线程中,少数协程的阻塞不会影响全局。但这些线程如果全部阻塞,将会导致不可确定的异常情况。建议使用专用的适合于 Java 的调度方式来进行延迟。
2.7.0 更新了日志,可以在 https://github.com/mamoe/mirai/tree/dev/logging 查看说明
onEnable 需要快速完成,不允许进行发送消息这种高消耗(通常200ms)的操作。可以 lauch
一个协程,在协程里进行你想要的事情。
请在 https://github.com/mamoe/mirai/issues/new?assignees=&labels=question&template=bug.md&title= 提交,尽可能附带全面的日志,如果能有标准步骤复现最好
使用 IntelliJ 插件创建的项目都配置好了 Kotlin, 直接在旧 config 的包创建 kt 文件就可以
object DataTwo : AutoSavePluginConfig("DataTwo") {
val string: String by value("test value")
val list: List<String> by value()
val map: Map<Long, Any?> by value(mapOf(
123L to "ok",
))
}
你需要为用户分配权限,用户才能在聊天使用指令(还要安装插件 chat-command)
https://github.com/mamoe/mirai-console#执行指令
需要 2020.* 或 2021.* 的 IntelliJ IDEA Community/Ultimate // AndroidStudio,我们没有足够的时间支持多个 IDE 版本。