Skip to content

注册模板文件(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))
}

检查项

  1. exists("rpg/main") == true
  2. 玩家能正常打开 rpg/main
  3. 改模板文件后能触发预期热更新

常见失败分支

场景处理
文件不存在启动阶段直接失败并打印绝对路径
扩展名不是 .bui调整文件名
templateId 为空注册会直接失败