此特性為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:包過濾器。
- block:指定要忽略的內容。低優先級數據包的內容若匹配其中指定的內容,則對應內容會被遊戲忽略。
- :一段指定內容。可以使用正則表達式。
- namespace:要匹配的命名空間。若省略則匹配所有命名空間。
- path:要匹配的路徑。若省略則匹配所有路徑。
- :一段指定內容。可以使用正則表達式。
- block:指定要忽略的內容。低優先級數據包的內容若匹配其中指定的內容,則對應內容會被遊戲忽略。
- pack:存放數據包資訊。
1.20.2原版數據包裡的pack.mcmeta檔案:
{
"pack": {
"pack_format": 10,
"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。 | |||||
| 1.19 | 22w11a | 在pack.mcmeta中加入了filter字段,用於按命名空間和正則表達式忽略低優先級數據包中的匹配內容。 | |||
參見
| 組件 |
| ||
|---|---|---|---|
| 數據包 | |||
| 教學 | |||
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 開發週期 |
| ||||||
| 技術 |
| ||||||
| 多人遊戲 | |||||||
| 遊戲訂製 | |||||||