一个愚蠢的问题,用kotlin写事件监听时对语法的不解:event ->
-
kotlin小白,希望通过mirai来学习kotlin,但初始就碰上了问题。。。{ event ->
//这里面可以直接按照普通的java代码写处理流程么?
//比如var m = event.message
var s = event.subject
s.sendMessage("Hello from mirai!")//这样?可否无视 -> ? 总觉得这里是一个lamda表达式,只能写一行代码的感觉。
}
暂时没法测试代码,等到晚上也会实际跑一跑试一试。
sample代码override fun onEnable() { logger.info { "Plugin loaded." } // `this` 是插件的协程作用域 // 在插件协程作用域里创建事件监听。当插件被停用时,插件的协程作用域也会被关闭,事件监听就会被同步停止。 this.globalEventChannel().subscribeAlways<MessageEvent> { event -> //event.message.contentToString() 这段代码可用么? // 处理事件 Introduction(event.message.contentToString(), event) subject.sendMessage("Hello from mirai!") } fun Introduction(message: String, e: MessageEvent) { var input = message.toLowerCase() if(input.startsWith("test")){ e.subject.sendMessage("Received!") } } }
-
希望可以在这里 https://github.com/mamoe/mirai/blob/dev/docs/Events.md#kotlin
追加一些kotlin创建事件监听时对取得信息处理的小实例 小白跪谢了。我实际运行后也会追加更新。 -
此回复已被删除! -
可以把"event->"去掉吧
可以参考我大概的写法
https://github.com/Nambers/mirai_plugin_example/blob/master/src/main/kotlin/PluginMain.kt -
@Nambers 看到了!好的,我试试。去掉的话就感觉很符合直觉了!
-
lambda本来就可以写多行代码呀