MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接

    mirai-jni-rs —— 基于JNI的Rust机器人开发项目

    其他项目发布
    2
    5
    504
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LuoRain
      LuoRain last edited by

      mirai-jni-rs(大概打算叫这名罢)

      这是什么?

      这是一个基于JNI的Rust语言mirai开发项目。

      刚入门Rust不久,一晚上大概只搓出下面展示的量,代码也有些乱,有些代码实现甚至都没统一,见谅。

      为什么?

      学习。

      而且,为什么不呢?

      代码展示

      主逻辑

      20b121ff-97a8-4841-9681-1c5bfb6952de-image.png
      1d350d17-884e-4d8d-99a6-56c5f04a8c40-image.png

      Member模型

      78758914-b57e-4fc8-9610-373e36c9e298-image.png

      实际效果

      37e02eee-f26f-4a6d-9bd2-efe723a009f9-image.png
      (为了移除机器人名称此图与代码逻辑不一致)

      Rust佬/Java佬勿喷

      1 Reply Last reply Reply Quote 1
      • LuoRain
        LuoRain last edited by

        已在GitHub上开源
        https://github.com/RainPlus-Team/mirai-jni-rs

        1 Reply Last reply Reply Quote 0
        • tsudzuki
          tsudzuki 摸鱼 last edited by

          简单看了眼,你的初始化函数宏好像是把env等等参数写死在里面的,导致代码可读性差,有没有考虑这样:新定义一个trait,为结构体实现trait,宏将参数转换为trait函数入参,或者是新建一个结构体,将参数全部装进去,然后初始化函数和开发者定义函数分开,jni函数调用开发者函数。

          第一种方法可以参考

          https://github.com/AtriKawaii/atri_rust/tree/main/atri_plugin

          tsudzuki LuoRain 2 Replies Last reply Reply Quote 1
          • tsudzuki
            tsudzuki 摸鱼 @tsudzuki last edited by

            @tsudzuki 还有就是可以尽量对jni类型进行包装,让二次开发不需要处理这些

            1 Reply Last reply Reply Quote 0
            • LuoRain
              LuoRain @tsudzuki last edited by

              @tsudzuki 感谢大佬,会尝试去改正的,刚刚入门不太熟悉

              1 Reply Last reply Reply Quote 0
              • 1 / 1
              • First post
                Last post
              Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact