@Moyuyanli 在 人类的本质:使用 JetBrains MPS 编写的不完全 Mirai 自定义语言 "IDE" 中说:
这是什么东西,看起来好强的样子...
用 JetBrains MPS 自定义了一个“编程语言”(其实是一个领域特定语言),用它生成调用 Mirai 的代码并运行。
@Moyuyanli 在 人类的本质:使用 JetBrains MPS 编写的不完全 Mirai 自定义语言 "IDE" 中说:
这是什么东西,看起来好强的样子...
用 JetBrains MPS 自定义了一个“编程语言”(其实是一个领域特定语言),用它生成调用 Mirai 的代码并运行。
@nambers mirai-core-all-2.6-RC.jar
只有 261 字节,就是“我尝试过的方式”中的第二点所描述的“空的”。我需要的可能是 mirai-core-all-2.6-RC-all.jar
。
@RainChan 在 人类的本质:使用 JetBrains MPS 编写的不完全 Mirai 自定义语言 "IDE" 中说:
有个问题,如果需要使用第三方依赖怎么办。
目前只能通过手动导入 .jar
的方式来解决。后面我准备开发调用外部程序的功能,这或许也可以解决一部分第三方依赖调用。
其次,这个项目的目的是什么,是降低应用开发门槛吗?如果是为了降低应用开发门槛我认为做一个类似ue4的那种蓝图系统可能会更好一些
是的,本意是降低使用门槛,但是现在好像降低到奇怪的方向去了,好像其实门槛变上升了🤣
@tsudzuki 在 人类的本质:使用 JetBrains MPS 编写的不完全 Mirai 自定义语言 "IDE" 中说:
@Geno1024 那你可以慢慢实现,之后再来改名字也无妨
好的,谢谢你。
@tsudzuki 在 人类的本质:使用 JetBrains MPS 编写的不完全 Mirai 自定义语言 "IDE" 中说:
标题的意思是这个语言叫IDE呢,还是叫人类的本质呢,还有仓库名也不一致
抱歉给大佬产生了理解上的不便,标题的意思是“产品叫做‘人类的本质’,产品是一个 IDE,在该 IDE 中使用了一个自定义的语言,该语言名字未提及,该语言调用 Mirai”。
然后,仓库名是参考了一些其他的 JetBrains MPS 的代码仓,直接把写的 Language 名字当仓库名了(我也不知道为什么),然后当时随意写的 Language 名字是 com.geno1024.chatbot,当然名字可以改,现在感觉还是写作诸如 ChatbotLanguage 之类的好一点,我现在主要目标在实现功能上,还没有去花心思搞除了功能之外的东西。
@Moyuyanli 在 人类的本质:使用 JetBrains MPS 编写的不完全 Mirai 自定义语言 "IDE" 中说:
这是什么东西,看起来好强的样子...
用 JetBrains MPS 自定义了一个“编程语言”(其实是一个领域特定语言),用它生成调用 Mirai 的代码并运行。
这是一个刚刚实现了一点基础功能的项目,绝大多数功能仍未实现,请轻拍。
话说后续帖子能更新的吧?
“人类的本质”是一个使用 JetBrains MPS 编写的使用 Mirai 作为对接 QQ 的“后端通信接口”的自定义语言 IDE。
目前开源于 GitHub: Geno1024/com.geno1024.chatbot。
前情摘要:https://mirai.mamoe.net/topic/143
由于刚刚重写没几天,因此绝大多数功能仍然未实现。预想中与实现了的功能列表可查看项目 Readme。简单描述如下:
string
(曾实现过),也可以是调用某个外部程序之后获得的标准输出。其他更加复杂的功能尚未安排、尚未学习或尚未遇到。
请阅读项目 Readme,另外本章节需要一些 MPS 初学者进行补充。
在输入 Login 那里要使用自动补全才能出来正确的 Login with QQ,使用回车补全出来的直接填了也没有用。其实上一个版本想把它搞成 QQ 微信通用的,但暂时没有精力。
(后续会调整文字颜色、边框等令其更加清晰易看)
首先感谢各位大佬贡献自己的时间给这个项目。
代码中有一个私货,会过滤掉开头的😐,可以删掉这个过滤。在 QQ 或微信聊天时每一句话开头加一个😐是一个我坚持了六年半多的习惯。
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: 等想到了再补充吧。
@nambers mirai-core-all-2.6-RC.jar
只有 261 字节,就是“我尝试过的方式”中的第二点所描述的“空的”。我需要的可能是 mirai-core-all-2.6-RC-all.jar
。
@nambers 感谢。我重新看了一下,发现其实里面还有一个(不遵守我一直所认为的命名规则的)mirai-core-all-2.6-RC-all.jar
,看这大小可能确实是我想要的。我今晚回去之后试试看。
此前我打开的 Maven 中心仓库(包括阿里云镜像与 mvnrepository)均不支持 directory listing,导致我没注意到这个文件。
@rainchan 其实那个“我尝试过的方式”中的 1. 版本号 1.1.3 2. -qqandroid
已经暗示了,我去年已经做过一个了。
不过因为我所需要的场景其实非常局限(就是一个新生群的全手动仅基于关键词匹配的回答机器人),所以其实也就只使用了 Mirai 的消息接收和群聊回复功能,因此我去年做的那个是非常局限的。
今年做的这个的目的也依然这么单一(因此我今年搞的这个的功能依然非常局限),但是会加上一小点东西让它“好用”一点,目前在开发中,但是这几天我们学校的新生群又要准备开放了,因此有一些功能可能要暂时放下一会。
@nambers 目前使用 bintray 已经成为一个不可靠的方案。
如同 him188 在 GitHub 上的某个 discussion 所察觉到的,
bintray 放假了? 我发的请求还没收到回复...
Bintray 页面上一个大大的 Banner:
Attention: All Bintray services will be deprecated and your accounts will be disabled on May 1st 2021. Learn More.
因此事实上那个文档中说的使用 Jcenter 也应该考虑作为一个 deprecated 的方案。