RotaBot开发历程
Last Update:
Word Count:
Read Time:
Page View: loading...
RotaBot是什么
RotaBot是本人主导开发的一个Rotaeno查分机器人, 目前支持Discord和QQ两个主流的聊天平台, 开发团队的配置也是极致的豪华
怎么入坑Rotaeno的
在2025/02/02我正式接触了Rotaeno (国服)这一款游戏, 为什么说是正式接触, 因为我在2023/07/16购买了Rotaeno (国际服), 但我当时并没有玩下去 (主要是感觉太难玩了)
当时我还是一个萌新, 但凭借着我在其他音游的一些基础, 我在入坑还是比较顺利的
当时为什么开发RotaBot
我当时在Rotaeno的官方Discord频道问有没有什么方式可以查自己的分 (我当时还不知道Best40这个东西), 然后有人说填表查分 (就是填excel表格然后看)
我当时就不舒服了, 这么多的分我要填多久, 所以我就在想能不能做一个东西来自动帮我填这个表格, 正巧当时我又特别无聊, 遂进行开发
所以准确来说我当时是想开发一个填表小程序而不是一个Bot
开发历程
创建
在2025/02/02 20:32左右我开始进行Rotaeno游戏的抓包, 在2025/02/02 20:32:25我获取了第一个有用的包
然后在2025/02/02 23:36我给官方发了一封邮件, 大致内容是请求提供查询Best40的API
在2025/02/03 03:35我生成了第一张Best40图片
在生成完图片之后, 我把这张图片发到了Rotaeno的官方Discord频道的中文聊天区里面, 然后有一个叫做Terlity的人啊, 让我把图片删掉 (因为官方Discord不让发这种东西). 然后这个叫做Terlity的啊就加了我的Discord好友
然后我在与Terlity的聊天中说出了我可以尝试一下能不能做个dc bot然后就开始写了, 因为我当时是第一次写Discord的机器人, 所以写的很慢, 用了几个小时才写好
在2025/02/03 07:01由RotaenoBot生成了第一张Best40图片 (当时还不叫RotaBot, 叫RotaenoBot) 当时的Bot还只是使用前缀命令而不是Slash命令
说个好玩的, 为什么Discord的RotaBot的/login指令中有填写server / objectId / session的指令, 这是因为我当时并不知道sessionToken的获取逻辑, 然后我就写了个手动输入的逻辑, 然后现在也不想删了, 就留着给私有服务器用了
而且在最开始的Bot中是使用/xlcsign, /xlcsession, /accesstoken, /xlcid, /server绑定账号的
1 | |
小功能更新踩坑
在2025/02/03 20:42时我进行了一个小功能更新, 我当时的想法是只需要玩家输入/server gf/wf和/objectid xxxx就可以使用Bot, 但这是一个荒诞的错误, 我没有考虑到不同账户的数据不一样, 当时也没做更多的测试, 而且我当时还特别嘴硬说这不是我的问题 (?)
可能是未来的考虑
在2025/02/04 17:41我在Discord与Terlity的聊天中我说了一句之后就可以直接在网页上面进行查询。, 我当时确实特别想做一个网页查分 (确实做出来了, 只不过2025/11/10才做出来Rotaeno Dashboard, 但我确实在这之前就写好了API)
BYD的自定义图片
在2025/02/07这个Bot (应该也不能这么说, 因为RotaBot的Bot的代码和Rotaeno的代码是分开的, 我只修改了Rotaeno部分的代码) 支持了自定义头像 / 背景 / 驾驶员, 我当时还在注释中加了一个这就是特权, 而且这个判定还特别低智 (到目前还没改), 就是判定这个名字是不是指定的, 如果是的话就进行更改
真的不是因为Terlity想要看赛诺
更新登录方式
在2025/03/07这一天 (应该是这一天), 我更新了RotaBot的登录方式, 改成只用输入/server, /objectId, /session的方式, 但这个方式还是很低智, 真的
再一次更新登录方式
在2025/04/13 23:23我写出了通过TapTap扫描二维码来绑定账户 (当时只支持国服), 这个扫描二维码的想法是从QQ的Phigros机器人胡桃中得到的灵感, 我当时想着Phigros应该和Rotaeno用的应该都是一套类似的或者相同的SDK, 那么RotaBot是不是可以支持扫描二维码登录. 然后我就去网上找有没有关于Phigros的扫码登录的项目用来做参考, 结果真找到了一个, 但这个项目不能直接套到Rotaeno上面, 然后就是改代码写代码. 最后还是把东西给做出来了
但当时国际服的还是没有写出来, 因为国际服和国服最大的差别就是我没有现成的项目可以用来做参考, 但那个项目还是有一些可借鉴之处的的. 然后我就搞到2025/04/14 01:30多了, 最后还是搞出来了, 也算是可喜可贺
第一次尝试做应用
在2025/05/17 14:21, 我为RotaBot第一次制作应用 (使用的是Flutter, 因为我当时还想着会不会做成什么跨平台应用)
这是一个名叫RotaTools的应用 (应用的图标是光, 就是Arcaea的光)
然后由于这个应用太丑了, 不符合我的审美, 遂放弃 (我感觉我不适合写界面)
痛苦的多语言化
在2025/05/24 22:04, Terlity问能不能做一个类似/language的命令可以切换语言, 我当时说在之前做过了, 但没有用处 (没有效果, 也不知道为什么). 而且当时的代码已经很多了, 我只考虑了Discord的多语言化都已经感觉力竭了, 我不知道如果我再把生成的图片中的文字改了我会有多接近死亡. 但我还是记着这个事情, 在之后重构项目的时候加上去了
沟槽的年度报告第一弹
于2025/06/07 23:03, 某T姓男子问我能不能做一个类似年度报告的东西, 于是我花费了大约3个小时的时间写出了年度报告的第一弹. 但这个年度报告实在是太丑了, 而且我当时写的浏览逻辑还是发送/report后选择玩家当前的记录与玩家当前记录的获取时间前1年的记录 (如果没有就是用最接近时间的), 然后硬说这是一年的报告.
这个年度报告的UI是真的丑, 我都不想看, 但这个命令还是能用的, 只不过生成了文件但访问不了
超简陋的段位挑战
在2025/06/09 22:14, 我为RotaBot添加了段位挑战功能, 这个功能非常的简陋, 这就是一个非常简单的中间人攻击来获取本应该上传的游玩数据. 但这个游玩的条件属实有点恼人. 当然, 如果你愿意, 这个也是能用的
小游戏上线
在2025/06/13 23:56时小游戏功能上线, 当时的小游戏只有猜图片, 但在后续添加了猜音频和开字母等功能, 并且猜图片的功能在后续进行了一次较为大的更新
我当时在设计这个难度系统的时候就是故意设计成maimaiDX的难度等级 (因为有宴谱)
正式发布
RotaBot于2025/06/17 07:24发布了1.0版本 (这真的能说是发布吗)
第一次上线QQ
在2025/6/20 09:24, RotaBot QQ版生成了第一张Best40图片 (这个上线指的是使用QQ官方的机器人上线, 在2025/05/19有一个用QQ个人账户的Bot, 但已经没有再继续使用了)
但这个QQ的Bot功能非常少, 不足Discord的1/10 (Discord功能是真多). 而且在之后废弃了这一个Bot
开源部分代码
在2025/07/04 19:32, 我将RotaBot重新写了一下然后发布到了GitHub平台上, 虽然之前RotaBot也使用GitHub, 但这一个项目是公开的
失败的重构计划
在2025/08/09, 我进行了RotaBot的重构计划, 这个计划旨在规范代码结构 / 命名逻辑 / 多语言化, 但由于当时的RotaBot的代码已经非常的多了, 所以我就只写了部分功能的代码 (比如/login, /b40, /song info, /rotaeno update之类的命令)
但是当时做开发的人只有我一个, 所以我是同时在编写两套代码 (RotaBot的主线也在更新), 然后编着编着我就累了, 不想重构了, 要重构的代码太多了. 然后在之后我就把这个重构的事情给抛在脑后了