项目
你的模组不会坏
Crafting 模组必须在 Minecraft 更新和 Crafting 更新之后都能继续运行。本页说明哪些内容有保证,以及你需要怎么做才能从中受益。
保证的内容
Kotlin 和 Java API 中所有公开的内容,以及 CraftScript 的每个关键字、内置函数和事件名称。Crafting 的内部实现(如何加载模组、如何接入游戏)在任何版本中都可能改变;你的模组看不到它们,也不需要它们。
为什么游戏更新不会弄坏它
你的模组从不接触 Minecraft 的代码。当新的游戏版本移动或重命名了某些东西时,Crafting 会在内部调整每个 API 函数调用的游戏部分。你的模组使用的函数名称不变,作用也不变。
目前 Crafting 支持 Minecraft Java 26.3。每个新的游戏版本都会被完整支持:要么某个 API 函数在该版本上可用,要么该版本不被视为受支持。
四条规则
- 只增加,不修改。新参数带有默认值,所以已有的调用依然有效。新行为使用新名称。
- 替换会先给出警告。当有更好的做法时,旧做法会被标记为弃用,说明应改用什么,并且行为完全不变,至少保留到下一个主版本。你的编辑器会以删除线显示它。
- 只有主版本才会移除内容,也就是改变 Crafting 版本号第一位数字的版本。移除会在发布说明中公布,并给出每一项的替代方案。
- 绝不伪造。如果某个函数在当前运行的游戏中无法工作,它会给出明确的错误,绝不会返回一个编造的值,让模组以为一切正常。
这对你意味着什么
- 更新 Crafting 永远不会强迫你修改模组,主版本除外,而那时你会清楚地知道要改什么。
- 当你用到的东西被标记为弃用时,你有充足的时间:在下一个主版本之前,随时方便时再改。文档始终展示当前的做法。
- 如果模组需要你的 Crafting 版本尚未提供的功能,Crafting 会在加载时直接说明,而不是只加载一半。
- 不要在 Kotlin 或 Java 模组中导入
net.minecraft的类:那部分没有任何保证。 - 避免在
run_command和summon中使用游戏数据:它们接受 Minecraft 的格式,而这些格式确实会变。如果你因为某事需要它们,说明 API 缺少一个函数;请提出需求。
出错时
- 事件或命令中的错误会连同模组名称一起记录到日志,服务器的其余部分照常运行。
- 有类型错误的脚本不会加载,消息会给出文件、行号和期望的内容。
- 缺少依赖或需要更新版本 Crafting 的
.jar模组不会加载,Crafting 会一次性报告所有问题,并为每个问题给出建议。