常见问题
为什么安装模组后游戏里没有任何变化?
模组只提供框架、通用物品、槽位、HUD 和命令;它本身不包含任何境界数值、技能或配方。需要数据包或内容包(包括用 KubeJS 编写的内容)之后,真正的玩法才会出现。请先阅读数据包开发总览,再到 JSON 数据格式 中查阅具体的表。
需要哪些前置?
Jupiter 是必需前置,除此之外所有必需前置都已打包在模组内。KubeJS 只在你希望用脚本注册内容时才需要。JEI 和 Jade 是可选兼容模组,没有它们游戏也能正常运行。具体版本见基本信息与安装。
如何临时禁用某部分内容?
把对应条目加入 mxt:disabled 标签即可;被禁用的定义会停止参与玩法,而且不必删除任何数据包文件。
每个动态注册表都在固定路径上有自己的禁用标签:
data/mxt/tags/mxt/<registry>/disabled.json{
"replace": false,
"values": [
"example:old_definition",
"othermod:disabled_definition"
]
}把 <registry> 替换为注册表名,例如 data/mxt/tags/mxt/item_binding/disabled.json。disabled 中的条目不会被对应服务主动使用,但它们仍留在注册表里,因此其他定义可以安全地继续持有指向它们的 Holder。项目仍未发布,因此旧 JSON 和旧存档不保证保持兼容。其余加载规则见数据包开发总览。
为什么 /reload 没有应用我的修改?
MiXianTu 的数据表是原版 Minecraft 数据包注册表,而 Minecraft 是在世界加载时读取它们的。/reload 只刷新配方、战利品表、进度、函数和 KubeJS 服务端脚本,因此它永远不会重新读取 MiXianTu 的数据表。
要让修改生效,请重新加载世界:单机中退回标题界面再重新打开该世界;服务器上重启服务器。无法解码的文件会让世界无法加载,直到它被修复为止,因为这些注册表不保留上一次的快照。见加载、重载与同步。
为什么公式只在开发环境里报错?
Codec 在解析数据包时就能发现的公式问题——表达式格式错误、params 条目非法、加权列表为空——属于解码错误。加载器会收集所有失败条目并集中报告,加载以通常的聚合错误失败,因此你会一次看到全部损坏的公式,而不只是第一个。这一部分在开发环境和生产环境中的行为完全一致。
只有公式求值时才会暴露的问题——没有任何变量提供的名字、当前上下文无法提供的名字(例如技能公式里的 realm_rank)、产生 NaN 的变量或抛异常的变量——只能在运行时报告,因为再早无从得知。开发环境会记录完整错误,包括异常及其堆栈跟踪,并继续按 0 求值;生产环境对每条不同消息记录一行警告,同样继续按 0 求值。因此拼写错误在你编写数据包时很显眼,在服务器日志里仍然可见,并且永远不会把某个数值永久静默地归零。见公式变量。
我可以制作并分发自己的内容包吗?
你可以在这个框架上构建内容包,分发它们不受任何限制。
许可证
模组的代码和资源为 All Rights Reserved,商业分发(例如付费服务器)需要额外许可——详见 LICENSE。
在哪里可以不手写 JSON 就编辑数据包?
数据包可视化编辑器 可以在浏览器中以表单方式编辑本模组的数据包,带有字段说明和注册表补全。
在哪里可以提问?
加入我们的 Discord 一起讨论。