此特性为Java版独有。
数据包(Data Pack)系统为玩家进一步定制其Minecraft体验提供了一种新方式。数据包可用于覆盖或添加新的进度、维度、函数、战利品表、谓词、配方、结构和标签,而不进行任何代码修改。
行为
数据包可以放在世界的.minecraft/saves/<世界名称>/datapacks文件夹中。数据包可以是datapacks文件夹中的子文件夹或者.zip文件。将其放入文件夹后,将在加载或重新加载世界时为该世界启用数据包。
数据包将根据加载顺序加载其数据。此顺序储存在level.dat中,可以通过/datapack命令查看或修改。
内容
文件夹结构
|
data目录下也可以有多个不同的(命名空间)目录。
pack.mcmeta
当根目录中存在一个包含JSON格式数据的pack.mcmeta文件时才能被Minecraft识别为一个数据包。
- :根对象。
- pack:存放数据包信息。
- pack_format:数据包版本。如果此数值不匹配需求的数值,此数据包会显示警告,且在加载时需要额外确认。在17w43a – 17w47b此数值为
3,在1.13(17w48a) – 1.14.4(19w46b)此数值为4,在1.15(1.15-pre1) – 1.16.1(1.16.2-pre3)此数值为5,在1.16.2(1.16.2-rc1) – 1.16.5(20w45a)此数值为6,在1.17(20w46a) – 1.17.1(1.18-exp7)此数值为7,在1.18(21w37a) – 1.18.1(22w07a)此数值为8,在1.18.2(1.18.2-pre1 – 1.18.2-rc1)此数值为9,在1.19(22w11a及以上)此数值为10。 - description:一段原始JSON文本。在数据包列表下,光标移动到对应的数据包时会显示此处填写的描述。
- pack_format:数据包版本。如果此数值不匹配需求的数值,此数据包会显示警告,且在加载时需要额外确认。在17w43a – 17w47b此数值为
- filter
[新增:JE 1.19]:包过滤器。 - block:指定要忽略的内容。低优先级数据包的内容若匹配其中指定的内容,则对应内容会被游戏忽略。
- :一段指定内容。可以使用正则表达式。
- namespace:要匹配的命名空间。若省略则匹配所有命名空间。
- path:要匹配的路径。若省略则匹配所有路径。
- :一段指定内容。可以使用正则表达式。
- block:指定要忽略的内容。低优先级数据包的内容若匹配其中指定的内容,则对应内容会被游戏忽略。
- pack:存放数据包信息。
1.20.2原版数据包里的pack.mcmeta文件:
{
"pack": {
"pack_format": 9,
"description": "The default data for Minecraft"
}
}
data
参见:命名空间ID
此目录内存放一个或多个“命名空间”目录。“命名空间”目录内可包含对应的数据包内容文件夹。命名空间用于区分数据,且命名时名称只识别小写英文字母、数字、-和_。为了防止数据包之间发生冲突,建议在制作数据包时,尽量不要使用同样的命名空间。同时,仅当你要覆盖原版数据时,才使用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 | 现在可以在创建世界之前加载数据包。 | ||||
| 数据包现在可以添加和修改维度。 | |||||
| 1.17 | 20w45a | pack_version被拆分,数据包和资源包现在使用相互独立的版本数字。 | |||
| 20w46a | 由于204861,数据包版本号更改为7。 | ||||
| 1.18.2 | pre1 | 现在可在实验性数据包中添加自定义结构,即游戏现在可生成并存储由数据驱动的配置的结构。 | |||
| 现在可通过数据包对一些洞穴生成机制进行配置。 | |||||
由于对数据包加入了以上新功能,数据包版本号更改为9。 | |||||
| Java版(即将到来) | |||||
| 1.19 | 22w11a | 在pack.mcmeta中加入了filter字段,用于按命名空间和正则表达式忽略低优先级数据包中的匹配内容。 | |||
漏洞
Template:Issue list
参见
| 组件 |
| ||
|---|---|---|---|
| 数据包 | |||
| 教程 | |||
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 开发周期 |
| ||||||
| 技术 |
| ||||||
| 多人游戏 | |||||||
| 游戏订制 | |||||||