本教學將介紹如何執行在伺服器端中包含的資料生成器。
本教學以Java版1.18為準,1.13~1.17版本的用法和輸出可能不同。
用途
資料生成器可以:
- 輸出原版資源包的內容(方塊狀態、模型)。
- 輸出原版資料包的內容(進度、戰利品表、配方、標籤、世界生成)。
- 生成分別列出所有方塊狀態、所有註冊項和完整指令樹的JSON檔案。
- 實現NBT格式檔案(.nbt檔案)和String NBT格式檔案(.snbt檔案)的相互轉換。
開始
為了使用資料生成器,你需要下載對應遊戲版本的官方伺服器端。請確保你已經安裝了Java,Java版1.17要求Java16以上,而Java版1.18要求Java17以上。
在你儲存伺服器端.jar檔案的資料夾裡,打開bash或其他命令列窗口,然後執行如下指令:
java -DbundlerMainClass=net.minecraft.data.Main -jar server.jar(Java版1.18及以後)
java -cp server.jar net.minecraft.data.Main(Java版1.13 - Java版1.17.1)
如果你的設定正確,命令列中將顯示選項和描述列表。選項列表及其作用如下:
| 選項 | 命令列內描述 | 作用 |
|---|---|---|
| --all | Include all generators | 包含所有的生成器(--client、--server、--reports和--dev)。 |
| --client | Include client generators | 生成assets/minecraft資料夾,包含blockstates和models資料夾。 將SNBT檔案轉換為NBT檔案。 |
| --dev | Include development tools | 將NBT檔案轉換為SNBT檔案。 |
| --help | Show the help menu | 顯示幫助列表。 |
| --input <String> | Input folder | 指定輸入資料夾。 |
| --output <String> | Output folder (default: generated) | 指定輸出資料夾。預設為generated。 |
| --reports | Include data reports | 生成reports資料夾,包含worldgen資料夾和blocks、commands、registries三個JSON檔案。 |
| --server | Include server generators | 生成data/minecraft資料夾,包含advancements、loot_tables、recipes、tags四個資料夾。 將SNBT檔案轉換為NBT檔案。 |
| --validate | Validate inputs | - |
輸出內容
在上述命令列介面執行
java -cp server.jar net.minecraft.data.Main --all
所有支持內容都會被輸出。
若只想要輸出部分內容,將其中的--all替換為對應的生成器選項(--client、--server或--reports)即可。
NBT檔案轉換為SNBT檔案
執行
java -cp server.jar net.minecraft.data.Main --dev --input "directory"
其中directory是含有NBT檔案的目錄。此指令會將該目錄(包括其子目錄)下的所有的NBT檔案轉換為SNBT檔案輸出至generated目錄(可以透過--output選項變更目標資料夾),同時保留原目錄結構。
SNBT檔案轉換為NBT檔案
執行
java -cp server.jar net.minecraft.data.Main --client --input "directory"
其中directory是含有SNBT檔案的目錄。此指令會將該目錄(包括其子目錄)下的所有的SNBT檔案轉換為NBT檔案輸出至generated目錄(可以透過--output選項變更目標資料夾),同時保留原目錄結構。
參見
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||