用你喜欢的语言写 LeviLamina 模组¶
Rust、Go、Zig、C++ 都可以。装上 Pier,写一个动态库,放进 plugins/,服务器就会加载它;不同语言写的模组之间还能互相调用。
-
用你会的语言
Rust、C++、Go、Zig 都有官方绑定。不在名单上的语言,只要能调用 C 函数,也能自己接上。
-
模组之间能对话
Go 模组调用 Rust 模组提供的服务时,请求和回复由 Pier 转交,两边都不用知道对方是什么语言写的。
-
读不出来时会报错
宿主读不出某个值时,调用返回一个错误,里面写着读的是哪一项。你的代码可以据此拒绝这次操作。
-
升级不用重新编译
只要 ABI 版本没变,按旧版 Pier 编译的模组照常加载;真不兼容时,会在加载时写明原因。
-
卡住时看门狗会出手
某个模组占住服务器线程太久,看门狗先在日志里写下是哪个模组、卡在哪里,再结束进程,让守护程序把服务器拉起来。
-
和 LeviLamina 无缝衔接
LeviLamina 的事件、命令、玩家、世界都能在模组里直接用;原生插件也能通过 bridge 调用你的服务。