Skip to content
On this page

保留现有数据包

你不需要一次性重写一个已经能工作的数据包。Katton 最适合渐进迁移:静态 JSON 和稳定的 .mcfunction 可以继续保留,把原版数据包里最痛苦的部分搬到 Kotlin。

调用现有函数

使用 runFunction 可以调用仍然位于数据包里的函数。

kotlin
import top.katton.api.ServerPhase
import top.katton.api.ServerScriptEntrypoint

@ServerScriptEntrypoint(ServerPhase.READY)
fun main() {
    // 保留现有数据包行为,同时在外层加入 Kotlin 逻辑。
    // runFunction("my_pack:setup")
}

哪些保留,哪些迁移

继续留在数据包迁移到 Katton
静态配方和战利品表动态配方或战利品修改
静态标签运行时选择与过滤
作为数据触发器的进度如果有对应事件,改用事件监听
由现有工具维护的资源/数据文件逻辑很重的命令链
稳定的数据包库函数分支或计算很多的函数

避免双重所有权

迁移期间,不要让两个系统同时拥有同一行为。如果数据包函数发奖励,Katton 事件也发奖励,重载和事件时机都会变得难以推理。

给每个功能选一个所有者:

  • 数据包负责静态数据;
  • Katton 负责运行时逻辑;
  • 两者通过显式函数调用、标签、计分板或 storage 交互。

推荐顺序

  1. 保留数据包。
  2. 在旁边创建 Katton 脚本包。
  3. 从 Katton 调用一个现有函数。
  4. 把一段命令链迁移到 Kotlin。
  5. 行为完全一致后,再删除旧函数。