最近架了个 Mindustry 游戏服务器和朋友一起玩 PvP(然而没玩几天就弃坑跑去 MC 了 ),感觉不错,只是每次输命令和上传地图的时候都要 ssh/sftp 到服务器上有点不方便,所以就写了个 Telegram 机器人用来输命令和上传地图:
teledustry - Manage your Mindustry server through Telegram bot
我不会写 Java,所以没把这个 bot 写成 mod 的形式,而是直接把游戏服务器进程创建为子进程,然后读写子进程的 stdio。
这个 bot 用起来很简单,只要用
$ teledustry -t API_TOKEN -u YOUR_TELEGRAM_USERNAME SERVER_FILE.jar
就可以启动 Mindustry 服务器和 bot,然后去找 bot 聊天就能执行命令和上传地图了(记得用 /output
命令让 bot 把输出发到当前聊天里)。
Pangu 是一个有名的用来在全角字符与半角字符间添加空格的库,支持多种语言,其中 Node.js 版 pangu.js 可以作为命令行前端来使用。
但是由于是 Node.js,想要用 pangu 就需要装很多依赖,类 Unix 系统有包管理还好说,在 Windows 平台下装 node 只为了用 Pangu 实在是有点麻烦。
为了解决这个问题,我写了一个 Pangu 的命令行前端 Xuanwu,基于 pangu-rs,非常简单,只有六十行代码😂,还没有任何依赖。
需要用 Pangu 的时候,可以直接到 Release 里下载编译好的可执行文件(暂时没有 macos 的,darwin 交叉编译有点麻烦),比装 node + pangu.js 方便得多。
至于为什么叫 Xuanwu 这个名字,传说玄武大帝是盘古的儿子,这个工具基于 Pangu,那自然就要叫 Xuanwu 了😂