MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. Geno1024
    3. 主题
    G
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 2
    • 帖子 12
    • 最佳 2
    • 有争议的 0
    • 群组 1

    Geno1024 创建的主题

    • G

      人类的本质:使用 JetBrains MPS 编写的不完全 Mirai 自定义语言 "IDE"
      其他项目发布 • jetbrains mps jvm core ide • • Geno1024

      15
      0
      赞同
      15
      帖子
      1143
      浏览

      G

      这是一个刚刚实现了一点基础功能的项目,绝大多数功能仍未实现,请轻拍。
      话说后续帖子能更新的吧?

      “人类的本质”是一个使用 JetBrains MPS 编写的使用 Mirai 作为对接 QQ 的“后端通信接口”的自定义语言 IDE。

      目前开源于 GitHub: Geno1024/com.geno1024.chatbot。

      前情摘要:https://mirai.mamoe.net/topic/143

      功能

      由于刚刚重写没几天,因此绝大多数功能仍然未实现。预想中与实现了的功能列表可查看项目 Readme。简单描述如下:

      启动时发送纯文本信息(已实现)与图片。 当收到的群聊或私聊信息匹配到关键词(已实现)或与关键词完全相同(已实现)之后发送纯文本信息(已实现)与图片。 关键词的匹配可以使用作用域区分来源(已实现)。 定时发送纯文本信息与图片。 前三点所述的“纯文本信息与图片”的来源可以是写死的固定字符串(已实现),也可以是一段以发送者与内容为输入的 Java 程序的返回 string(曾实现过),也可以是调用某个外部程序之后获得的标准输出。 全局冷却时间(已实现)与黑名单(已实现)。 从 JetBrains MPS 构建一个该自定义语言的 IDE 或 IntelliJ IDEA 插件。 使用 Gradle 自动构建该自定义语言的 IDE 或 IntelliJ IDEA 插件。

      其他更加复杂的功能尚未安排、尚未学习或尚未遇到。

      Screenshot_20220703_120122.png

      使用方式

      请阅读项目 Readme,另外本章节需要一些 MPS 初学者进行补充。
      在输入 Login 那里要使用自动补全才能出来正确的 Login with QQ,使用回车补全出来的直接填了也没有用。其实上一个版本想把它搞成 QQ 微信通用的,但暂时没有精力。

      使用例

      Screenshot_20220703_120623.png

      (后续会调整文字颜色、边框等令其更加清晰易看)

      贡献方式

      首先感谢各位大佬贡献自己的时间给这个项目。

      如果你对 JetBrains MPS 非常了解的话,可以帮忙直接贡献项目代码。(非常感谢!) 如果你未曾使用过 JetBrains MPS 但对该项目有兴趣的话,可以在试用过程中帮忙贡献关于入门使用方式的描述,我也会在我力所能及的范围内协助你上手 JetBrains MPS 的基础以帮助你更加快速地使用它。 如果你对该自定义语言的语法结构等有建议的话也非常欢迎提出。 另外欢迎各位大佬们贡献其他使用过程相关的 Bug 反馈或者功能建议。

      代码中有一个私货,会过滤掉开头的😐,可以删掉这个过滤。在 QQ 或微信聊天时每一句话开头加一个😐是一个我坚持了六年半多的习惯。

      FAQ

      Q: 为什么叫做“人类的本质”?
      A: 这是我的测试帐号的名字。这个机器人一开始只是用来做新生咨询用的,就是一个单纯匹配关键字的机器人,而且发送的内容也都是固定的,因此是一个复读机(确实),再借用一下“人类的本质是复读机”这一句网络调侃,就使用了这个名字。

      Q: JetBrains MPS 是什么?
      A: JetBrains MPS (元编程系统,Meta Programming System)是一个用于创建领域特定语言(DSL)的 IDE,用它可以方便地编写一个新的 DSL 的语法结构(Structure)、排版布局(Editor)、节点属性关联(Constraint)、节点的 Java 程序(Behavior)、类型系统(Typesystem)等,并且可以将该 DSL 转译为 Java 程序或 Kotlin 程序并运行,还可以生成对应的 IntelliJ IDEA 的插件或者独立的 IDE。
          简单地说就是一个写语言的。

      Q: 为什么 FAQ 里面只写了 3 个问题?
      A: 等想到了再补充吧。

    • G

      已解决 【半伸手】如何获得完整的 Mirai 依赖
      开发交流 • • Geno1024

      11
      0
      赞同
      11
      帖子
      1037
      浏览

      G

      初看这个标题可能会认为我是个伸手党 233

      我的本质问题是,如何直接(相对于使用 Gradle、Maven 等构建工具)获得一些(?一个?)JAR 包,以可以直接使用 Java 调用现在的 Mirai 用于后续开发呢?

      或者换个问法,假设我现在的开发环境极度原始(比如说,我只有一个 Eclipse Helios),用着一个连 Maven 支持都没有的 IDE,只能通过“把 .jar 包下载到 lib 文件夹再添加引用”这种最落后的方式来使用依赖包,那么在这种开发环境下我应该如何使用 Mirai 来进行开发?

      实际上我正在使用 JetBrains MPS 开发一个基于 Mirai 的 "IDE",但是因为我目前并没有学习到足够的知识(两个月前的 MPS Talk 中看到有人做的项目是 Maven 还是 Gradle 上的 MPS 项目忘记了,总之表明是可以使用构建工具的,但是反正我现在还不会),因此只能使用直接下载 .jar 包再引用的方式。

      我尝试过的方式包括:

      (今年这方式无效了)下载 mirai-core-1.1.3.jar 和 mirai-core-qqandroid-1.1.3.jar(看这名字暴露了啥 233) 遵照过时的(?)文档下载 net.mamoe:mirai-core-all:2.6-RC(发现是空的……) 另外创建一个目录,遵照文档中的 Gradle 指引 随便写了一个最简单的 build.gradle.kts 和 settings.gradle.kts 然后看了 --help 试图使用 -g . 参数来试图在当前目录下截获全部依赖 .jar 包,最终在 gradle -g . --max-workers 4 build 时如期退出,结果一丁点 mirai 的痕迹都没见着……

      于是,我想来问一下,我应该如何获得完整的 Mirai 依赖包用于 Java 开发呢?

    • 1 / 1