数据包(data pack)系统为玩家进一步定制其Minecraft体验提供了一种新方式。数据包可用于覆盖或添加新的进度、维度、函数、战利品表、谓词、配方、结构和标签,而不进行任何代码修改。
行为
数据包可以放在世界的.minecraft/saves/(世界名称)/datapacks文件夹中。数据包可以是datapacks文件夹中的子文件夹或者.zip文件。将其放入文件夹后,将在加载或重新加载世界时为该世界启用数据包。
数据包将根据加载顺序加载其数据。此顺序储存在level.dat中,可以通过/datapack命令查看或修改。
内容
文件夹结构
|
data目录下也可以有多个不同的(命名空间)目录。
pack.mcmeta
当根目录中存在一个包含JSON格式数据的pack.mcmeta文件时才能被Minecraft识别为一个数据包。
- :根对象。
- pack:存放数据包信息。
- pack_format:数据包版本,可以是任何数字。
- description:一段原始JSON文本。在数据包列表下,光标移动到对应的数据包时会显示此处填写的描述。
- pack:存放数据包信息。
1.20.2原版数据包里的pack.mcmeta文件:
{
"pack": {
"pack_format": 5,
"description": "The default data for Minecraft"
}
}
data
此目录内存放一个或多个“命名空间”目录。“命名空间”目录内可包含以下文件夹:advancements、dimension、dimension_type、functions、loot_tables、predicates、structures、recipes和tags。命名空间用于区分数据,且命名时名称只识别小写英文字母、数字、-和_。为了防止数据包之间发生冲突,建议在制作数据包时,尽量不要使用同样的命名空间。同时,仅当你要覆盖原版数据时,才使用minecraft为数据包的命名空间。
进度、函数、战利品表、谓词、结构、配方和标签文件可以直接放入到对应的文件夹内,当然放入到对应的文件夹下的子文件夹内也是允许且可识别的。
数据包模板
原版数据包的文件结构:
| 列表 |
|---|
|
历史
| Java版 | |||||
|---|---|---|---|---|---|
| 1.13 | 17w43a | 加入了数据包。 | |||
| 17w46a | 加入了/datapack命令,用于控制加载的数据包。 | ||||
| 17w48a | 数据包可读取自定义配方。 | ||||
| 18w01a | 在战利品表中加入了set_name函数。
| ||||
(重新)加载后的minecraft:load里的函数现在会运行一次。 | |||||
| 崩溃报告中现在会列出启用的数据包。 | |||||
| 1.14 | 18w43a | 加入了实体种类标签。 | |||
| 1.15 | 19w38a | 加入了predicates文件夹,可以在此处定义谓词。 | |||
| 1.16 | 20w22a | 稍微修改了数据包的加载机制,防止数据包带来的崩溃。 | |||
| 游戏将会检测严重的数据包问题,比如关键标签的缺失,将会阻止世界的加载。 | |||||
| 如果数据包加载失败,那么修改将不会被应用,游戏将会使用旧的数据包。 | |||||
| 数据包列表仅在数据包成功加载后才会更改。 | |||||
服务器添加了--safeMode选项让游戏只加载原版数据包。 | |||||
| pre1 | 现在可以在创建世界之前加载数据包。 | ||||
| 数据包现在可以添加和修改维度。 | |||||
漏洞
Template:Issue list
参见
| 组件 |
| ||
|---|---|---|---|
| 数据包 | |||
| 教程 | |||
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 开发周期 |
| ||||||
| 技术 |
| ||||||
| 多人游戏 | |||||||
| 游戏订制 | |||||||