主题
注册模板文件(file-only)
第三方插件接入模板时,先把事情压缩到最小:只提供 .bui 文件路径,先确认注册、打开、热更新全都成立。
准备模板文件
例如插件目录:
plugins/MyRpg/ui/rpg/main.bui
注册模板
kotlin
import com.behemiron.engine.spigot.api.ui.BUIServerAPI
import com.behemiron.engine.spigot.api.ui.TemplateRegisterOptions
fun registerTemplates(dataFolder: File) {
val uiFile = File(dataFolder, "ui/rpg/main.bui")
val ok = BUIServerAPI.template().registerFile(
templateId = "rpg/main",
file = uiFile,
options = TemplateRegisterOptions(
notifyReload = true,
pushUpdate = true
)
)
check(ok) { "registerFile failed: ${uiFile.absolutePath}" }
}打开 UI
kotlin
fun openRpgMain(player: Player) {
BUIServerAPI.ui().open(player, "rpg/main", mapOf("hp" to 100, "mp" to 50))
}检查项
exists("rpg/main") == true- 玩家能正常打开
rpg/main - 改模板文件后能触发预期热更新
常见失败分支
| 场景 | 处理 |
|---|---|
| 文件不存在 | 启动阶段直接失败并打印绝对路径 |
扩展名不是 .bui | 调整文件名 |
templateId 为空 | 注册会直接失败 |