NBT資源管理器中的資料樹:「我的測試世界」在所有曾經進入這個世界的玩家的「玩家資料」資料夾中都有玩家資料。 在這裏你可以看到UUID為1234abcd ...的玩家。 玩家資料包括兩個項目資料條目:EnderItems(EnderItems)和玩家的庫存(Inventory)。 每個項目都有一個計數和一個ID,在容器或庫存中有物品槽。 一些物品具有其他特徵標籤,鐵鎬例如 耐久值「傷害」。
<player>.dat檔案被用於伺服器以儲存玩家資訊。這種格式也在level.dat檔案中使用以儲存單機遊戲的狀態,它的優先級高於<player>.dat檔案。這些檔案都採用了NBT格式。
NBT結構
- 根標籤。在level.dat檔案裡,它叫作「Player」。
- 實體裏面除了「id」、「CustomName」和「CustomNameVisible」以外的所有標籤。
- 生物裏面除了「HandItems」、「ArmorItems」、「DropChances」、「CanPickUpLoot」、「PersistenceRequired」、「Leashed」和「Leash」以外的所有標籤。
- DataVersion: NBT結構的版本。每個新快照和正式版都會增加數值。
- Dimension: 這個資料寫明了玩家現在在哪個世界。-1表示地獄,0表示主世界,1表示終末之界。其他數值被解釋為0。
- playerGameType: 這個資料指明了玩家的遊戲模式。0表示生存模式,1指創造模式,2指冒險模式,3指旁觀者模式。
- Score: 在死亡畫面中顯示的分數。
- SelectedItemSlot: 玩家正在選擇的快捷欄。
- SelectedItem: 玩家正在選擇的快捷欄物品,不包含Slot標籤。
- 詳見物品內容。
- SpawnX: 見下文。
- SpawnY: 可能不存在。玩家的床的座標。如果玩家重生在一個無效的床時此標籤將被移除。床被破壞不影響這些座標,玩家死亡也不影響。
- SpawnZ: 見上文。
- SpawnForced: 1或0 (true/false) - 可能不存在。若沒有床且此處為1,則玩家將被強制復活在上面的座標。
- Sleeping: 1或0 (true/false) - 若玩家正在睡覺則為真(1),不會影響到玩家是否在床上登入。
- SleepTimer: 自玩家開始睡覺之後經過的刻。無效果。
- foodLevel: 這個資料指明了飢餓值,最大為20。詳見飢餓條目。
- foodExhaustionLevel: 詳見飢餓條目。
- foodSaturationLevel: 詳見飢餓條目。
- foodTickTimer: 詳見飢餓條目。
- XpLevel: 顯示玩家的經驗值。
- XpP: 需增長多少經驗(百分數)才可升到下一級。
- XpTotal: 玩家所獲得的經驗總數,用於計算積分。
- XpSeed: 這個種子用於附魔台下次附魔。
- Inventory: 每個複合標籤都是玩家物品欄裡的一個物品。(提示:當為空時,列表類型可能會出現意外值。)
- EnderItems: 每個複合標籤都是玩家的終界箱裡的一個物品。(提示:當為空時,列表類型可能會出現意外值。)
- abilities: 玩家擁有的能力。
- walkSpeed: 步行速度,永遠是0.1。
- flySpeed: 飛行速度,永遠是0.05。
- mayfly: 1 or 0 (true/false) - 玩家能飛行時為真。
- flying: 1 or 0 (true/false) - 當玩家正在飛行時為真。
- invulnerable: 1 or 0 (true/false) - 如果玩家能抵消所有傷害和有害的效果時為真,除了虛空傷害。(由
/kill指令造成的傷害視為虛空傷害) - mayBuild: 1 or 0 (true/false) - 當玩家可以摧毀及放置方塊時為真。
- instabuild: 1 or 0 (true/false) - 當玩家可以瞬間摧毀方塊時為真。
- enteredNetherPosition: 可能不存在。在玩家進入地獄時其在主世界的位置,用於進度觸發器
minecraft:nether_travel中。在玩家每次從主世界透過地獄傳送門進入地獄時都會設定該標籤,通過傳送門返回主世界時不會移除或更新標籤。不使用傳送門進入地獄不會更新標籤。如果傳送門在終界,使用其進入地獄將移除標籤。- x: X座標。
- y: Y座標。
- z: Z座標。
- RootVehicle: 玩家騎著的根實體。
- AttachMost: 玩家騎著的實體的UUID高位。
- AttachLeast: 玩家騎著的實體的UUID低位。
- Entity: 玩家騎著的實體的NBT資料。
- 詳見實體格式。
- ShoulderEntityLeft: 玩家左肩上的實體。永遠顯示為一隻鸚鵡。
- 詳見實體格式。
- ShoulderEntityRight: 玩家右肩上的實體。永遠顯示為一隻鸚鵡。
- 詳見實體格式。
- seenCredits: 1 or 0 (true/false) - 如果玩家正透過返回傳送門前往主世界則為true。
- recipeBook: 包含一個JSON對象,說明了玩家已解鎖的配方。
- 詳見配方手冊#資料值。
物品結構
物品結構可以用於玩家的物品欄和終界箱物品欄、儲物箱中的實體附加值、掉落物品實體、熔爐方塊實體、釀造台方塊實體和村民交易內容中。有時Slot標籤會被用來指定物品所在的欄位,例如在儲物箱中;在其他時候也可能會沒有Slot標籤,例如掉落的物品。
通用標籤
一個帶有耐久度的物體可以設定為無法破壞並永遠不損失任何耐久。同樣,透過指令修改的物品可以讓冒險模式的玩家放置或破壞指定的方塊。
- tag: 父標籤。
Player.dat格式/工具
方塊標籤
方塊可以被賦予標籤指定冒險模式的玩家可以放在哪些方塊上面,並且可以指定放置時附加上哪些方塊實體標籤。
- tag: 父標籤。
附魔
附魔和物品可以有兩種關係——第一種,物品被「真附魔」,即物品擁有了附魔提供的屬性;第二種,物品的附魔被標註為附魔書類型,這種附魔僅僅能達到儲存附魔的效果,物品的屬性並不會因為這種附魔而改變。RepairCost標籤則會記錄該物品的鐵砧使用次數,以實現附魔所需經驗等級隨使用次數增加而增加的特徵。
- tag: 父標籤。
Player.dat格式/附魔
StoredEnchantments如果附加到附魔書以外的物品上,則不會顯示其中的附魔。但是,儲存在Enchantments中的附魔將始終顯示其擁有的附魔並且會使物品發光,即使它們無法產生任何實際效果。
屬性修飾符
所有的物品都可以被賦予修飾符,令玩家/實體當穿著或者手持物品時賦予其屬性。請注意,如果一個物品在原版就擁有AttributeModifiers標籤,那麼物品屬性將會被新增的標籤覆蓋(比如說如果給一把鑽石劍附加了一個空的AttributeModifiers列表,它將無法增加攻擊傷害)。另請注意,預設的AttributeModifiers並沒有實際使用這個標籤,因此它不會出現在自然物品上。
- tag: 父標籤。
Player.dat格式/屬性修飾符
藥水效果
藥水、飛濺藥水、滯留藥水和藥水箭可以透過CustmPotionEffects標籤擁有多個自訂效果。如果存在,這些效果將加入到Potion標籤內的預設效果中。此外,可以使用CustomPotionColor標記設定藥水顏色。
- tag: 父標籤。
弩
弩使用NBT標籤儲存弩中裝載的物品。
- tag: 父標籤。
- Charged:表示弩是否已被裝填。
- ChargedProjectiles:弩裝填的物品。每個物品的堆疊數量會被忽略,在弩發射時會全部被清除。
- :裝填的物品。
- 物品共通標籤
- :裝填的物品。
顯示屬性
皮革盔甲可以被染色,並且所有物品都可以擁有自訂名稱和說明。工具提示也可以被隱藏。
- tag: 父標籤。
Player.dat格式/顯示屬性
完成的書
書和羽毛筆和完成的書的內容資訊都儲存在tag標籤裡。只有完成的書擁有title標籤、author標籤和generation標籤;pages標籤兩者都有。
- tag: 父標籤。
- author:完成的書的作者。
- filtered_pages:已過濾的頁面資訊。
- <頁數>:代表某頁的字串過濾後的結果。如果玩家開啟了過濾,則此字串優先於 pages內的字串。
- filtered_title:已過濾的標題。無實際作用。
- generation:決定完成的書是否為副本。0 = 原作,1 = 原作的副本,2 = 複本的複本,3 = 破舊的。預設完成的書為「原作」。
- pages:完成的書的各個頁面。
- :完成的書的一個單頁,是一個JSON文字。
- resolved:表示這本完成的書是否是第一次被打開,決定是否要進行完成的書內文字的解析。
- title:完成的書的標題,不能超過32個字元。
玩家的頭顱
玩家的頭顱可以被一名指定使用者名稱的玩家的外觀頭顱取代。僅在手持該物品時會隨著這名玩家的外觀改變而改變。在此部分中,一個頭顱的「所有者」表示被取得其頭顱的玩家,「持有者」表示在物品欄內擁有頭顱的玩家。
- tag: 父標籤。
- SkullOwner:玩家名稱或一個玩家配置資訊標籤。當儲存時,玩家名稱會自動解析為玩家配置資訊標籤。
- Id:(可選)擁有者的UUID。
- Name:(可選)擁有者的使用者名稱。
- Properties:玩家配置屬性。
- SkullOwner:玩家名稱或一個玩家配置資訊標籤。當儲存時,玩家名稱會自動解析為玩家配置資訊標籤。
煙火
煙火使用tag標籤儲存有關其效果的資訊。
- tag: 父標籤。
- Fireworks:煙火的參數。
- Flight:煙火的飛行的時間,單位為「火藥」(即表現為和在工作枱上合成煙火時所用的火藥數相等),預設為0b。注意:這個標籤的取值範圍比工作枱大得多,最大是127b,更大的值將會變為-128 + 其與128的差,結果大於-1的將強制變為-1,比如128變為-128,200變為-56,512變為-1。如果值為-2b或更小(包括上文提到的,「轉換」過後的值),煙火看上去基本不會飛行。
- Explosions:包含煙火包含的每個爆裂的複合標籤列表。
- Fireworks:煙火的參數。
盔甲座和生怪蛋
- tag: 父標籤。
魚桶
魚桶可能包含內部實體的資料。
- tag: 父標籤。
- BucketVariantTag:桶中熱帶魚的種類資料。僅用於熱帶魚桶。
- Glowing:表示桶中魚是否發光。
- Health:桶中魚的生命值。
- Invulnerable:表示桶中魚是否對除虛空傷害外的傷害免疫。
- NoAI:表示桶中魚的AI是否被停用。
- NoGravity:表示桶中魚是否不受重力影響。
- Silent:表示桶中魚是否不會發出任何聲音。
地圖
地圖可能會被縮放。
- tag: 父標籤。
- Decorations:地圖上顯示的圖示。在重新載入世界之前,刪除或修改的圖示不會被更新。
- :一個圖示。
- id:識別圖示的隨機唯一字串。
- type:要顯示的地圖圖示的ID。
- x:圖示在世界上所在的X座標。
- z:圖示在世界上所在的Z座標。
- rot:圖示的旋轉角度,範圍從0.0到360.0,方向為順時針。與圖示紋理中的外觀相比,旋轉角度為0.0所顯示的圖示上下顛倒。
- :一個圖示。
- display:物品顯示屬性。
- MapColor:物品欄內地圖紋理上的顏色。
- map:地圖編號。
- map_scale_direction:地圖縮放等級,僅在縮放地圖時由內部使用,之後直接刪除。如果強制設定此值,將改變工具提示中的比例尺和等級資訊。
- map_to_lock:表示此地圖是否已經鎖定,僅在鎖定地圖時由內部使用,之後直接刪除。如果強制設定此值,將改變工具提示中的鎖定資訊。
- Decorations:地圖上顯示的圖示。在重新載入世界之前,刪除或修改的圖示不會被更新。
迷之燉菜
- tag: 父標籤。
Player.dat格式/迷之燉菜
除錯棒
除錯棒使用NBT格式儲存對每個方塊編輯的方塊狀態。
- tag: 父標籤。
- DebugProperty:除錯棒編輯的方塊和其狀態的列表。
- <方塊的命名空間ID>:方塊和此方塊將要修改的屬性的鍵值對。例如
"minecraft:grass_block":"snowy"。
- <方塊的命名空間ID>:方塊和此方塊將要修改的屬性的鍵值對。例如
- DebugProperty:除錯棒編輯的方塊和其狀態的列表。
物品欄欄位號碼
歷史
| Java版 | |||||
|---|---|---|---|---|---|
| 1.7.2 | ? | 對工具加入了Unbreakable。 | |||
| 1.8 | 14w06a | 對工具加入了CanDestroy。
| |||
對物品加入了HideFlags。 | |||||
| 14w07a | 對所有方塊加入了BlockEntityTag. | ||||
| 14w10a | 加入了一個隱藏藥水效果的第5位(值為32)的HideFlags。 | ||||
| 14w33a | 對所有物品加入了SelectedItem。 | ||||
| 1.12 | pre1 | 對玩家加入了enteredNetherPosition,用於進度觸發器minecraft:nether_travel。 | |||
| 1.13 | 18w01a | Name標籤現在是JSON文字。
| |||
移除LocName標籤。使用Name:"{\"translate\":\"gui.toTitle\"}"代替LocName:"gui.toTitle"。 | |||||
| 18w21a | ench標籤重新命名為Enchantments。 | ||||
| 1.14 | 18w43a | Lore標籤現在是JSON文字。 | |||
| 19w06a | 對方塊的物品形式加入了BlockStateTag。 | ||||
參考
| 版本 | |||||||
|---|---|---|---|---|---|---|---|
| 開發週期 |
| ||||||
| 技術 |
| ||||||
| 多人遊戲 | |||||||
| 遊戲訂製 | |||||||
