MiraiForum

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

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

    其他项目发布
    2
    5
    492
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • LuoRain
      LuoRain 最后由 编辑

      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 条回复 最后回复 回复 引用 1
      • LuoRain
        LuoRain 最后由 编辑

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

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

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

          第一种方法可以参考

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

          tsudzuki LuoRain 2 条回复 最后回复 回复 引用 1
          • tsudzuki
            tsudzuki 摸鱼 @tsudzuki 最后由 编辑

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

            1 条回复 最后回复 回复 引用 0
            • LuoRain
              LuoRain @tsudzuki 最后由 编辑

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

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