MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    一个愚蠢的问题,用kotlin写事件监听时对语法的不解:event ->

    开发交流
    3
    6
    404
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • L
      lancelot_saber 最后由 编辑

      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!")
                  }
              }
          }
      
      1 条回复 最后回复 回复 引用 0
      • L
        lancelot_saber 最后由 编辑

        希望可以在这里 https://github.com/mamoe/mirai/blob/dev/docs/Events.md#kotlin
        追加一些kotlin创建事件监听时对取得信息处理的小实例 小白跪谢了。我实际运行后也会追加更新。

        1 条回复 最后回复 回复 引用 0
        • Nambers
          Nambers 摸鱼 最后由 编辑

          此回复已被删除!
          1 条回复 最后回复 回复 引用 0
          • Nambers
            Nambers 摸鱼 最后由 编辑

            可以把"event->"去掉吧
            可以参考我大概的写法
            https://github.com/Nambers/mirai_plugin_example/blob/master/src/main/kotlin/PluginMain.kt

            1 条回复 最后回复 回复 引用 0
            • L
              lancelot_saber 最后由 编辑

              @Nambers 看到了!好的,我试试。去掉的话就感觉很符合直觉了!

              1 条回复 最后回复 回复 引用 0
              • Karlatemp
                Karlatemp 最后由 编辑

                lambda本来就可以写多行代码呀

                1 条回复 最后回复 回复 引用 1
                • 1 / 1
                • First post
                  Last post
                Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact