跳到主要内容

ksm复活了,谈谈她的工作方式

· 阅读需 5 分钟
兔兔
兔兔

经过三天的奋斗,我终于是把ksm完全使用Nodejs框架完全重写所有功能,ksm2.0隆重出场!

在庆祝Ksm打赢复活赛的同时,还是忍不住讲一讲Ksm在新版和旧版之间使用的技术栈,到底有何区别:

Kasumi第一次诞生是在将近一年半之前,当时对于机器人技术深深好奇的我,在获得一个朋友的服务器后,我便按着网络上机器人的教程,借助框架Mirai开始了Ksm的故事。

那时候的我虽然对机器人编程还几乎一窍不通,但也兴致勃勃。Mirai的插件设计,使得用户们不需要太过于借助代码的帮助,只需要掌握基本的json语法,通过操作配置文件便可以快速根据插件搭建一个自己的机器人。

这对当时的我无疑是一个极好的工具,同时我也借助mirai的Onebot加载器,接入了一些其他的bot插件,使其成为了一个抽象的插件大杂烩Bot。

但是这样无疑有许多缺点,最为突出的便是无法完全满足Bot的需求,插件之间无法统一管理,甚至有些功能我自己也无法控制。这种情况一直持续到后面的后面,第一代ksm的落幕。

2023.2月,我接触到了基于Nodejs的Sparkbridge,一个个人开发者为我的世界基岩客户端开发的机器人框架。其架构之简单优雅易懂,一下子吸引了我的注意。

Nodejs对于初学者来说,还算是一门较为容易上手的语言。通过学习已有的代码,我很快掌握了基本的机器人代码操作,同时那个时候我为这个框架开发了大量的插件程序,算是以一己之力带动了这个框架的繁荣

同时我也将其用于ksm中,至那时起,ksm便出现了由我亲自编写的代码,虽然mirai的插件依然是框架的核心,但是我的代码也渐渐开始发挥作用了。

2023.11月,随着tx对于协议库bot的追堵拦截,Mirai再也无法登录,至此Ksm第一代算是落下帷幕,此后较长一段时间内,我都将其搁置,投入到音游Orzmic的Bot雪绘Bot的开发中,也在其中掌握了更多的nodejs操作。但是对于ksm,我依旧期待着她什么时候能够复出。

就在前些日子,出现了其他的qq机器人实现。这使的我有了勇气去重新开发一个新的ksm的底层。

曾经基于mirai的Bot不可能重新启用,但是我在其中使用的触发词等等插件,都是ksm的重要组成部分。最好的方式便是我使用Nodejs框架,从头开始写整个bot。

就这样,在连肝三四天后,一个由我完全编写的ksm终于重新出现。触发词系统虽然由mirai的配置文件,但是程序和配置文件已经被我重写和转换。所以有些功能的消失可能是因为我没有重做,也很有可能是因为一开始我就不需要这个功能,所以我没有用自己的代码重写。

至此整个bot都成为了我自己的代码,拥有了完整的控制权和插件之间能够完全互通,这是先前的ksm无法做到的。也算是我玩bot两年来,所学习到的内容的融会贯通了。

我的新架构虽然还有很多不足,但是起码我迈出了重新一步,我想以后还会越来越好,不是吗?