保留现有数据包
你不需要一次性重写一个已经能工作的数据包。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 交互。
推荐顺序
- 保留数据包。
- 在旁边创建 Katton 脚本包。
- 从 Katton 调用一个现有函数。
- 把一段命令链迁移到 Kotlin。
- 行为完全一致后,再删除旧函数。
