好久以前做过一个让服务器跑lua的插件
因为java对lua支持太差加上lua本身的一些缺陷,泛用性比较差。于是考虑用js了。
github.com/ETWXR9/JSpigot
本质上这个插件就是引入了graaljs,然后启动的时候执行指定的js脚本,再从该入口脚本去执行其他js脚本。同时可以使用graaljs提供的Java.type函数去反射调用Java,以此实现js调用spigotapi或者其他插件的api。
那js好处都有啥呢
- 语法比java简单,不用编译打包,实现需求快
- 模块化,适合搞一些零散的功能和小轮子。
- 方便把数据和逻辑揉在一起
那js坏处有啥呢
- 没有java api的自动补全,得照着文档写
- 性能差
- 写多了就乱了
在本次的毛运会中我用js脚本写了马拉松的计时功能、魔女书记的答题功能和计时功能等内容。
还算是挺好用的。