本站文本内容除另有声明外,转载时均必须注明出处。(详情…本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。需要管理员的协助?在管理员告示板留言也许可以帮到您。

Player.dat格式

出自Minecraft Wiki
前往: 導覽搜尋

<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: 每個複合標籤都是玩家的終界箱里的一個物品。(提示:當為空時,列表類型可能會出現意外值。)

      • 儲物箱里的物品。包含Slot標籤 - Slot標籤的編號在0至26之間。

    •  abilities: 玩家擁有的能力。

      •  walkSpeed: 步行速度,永遠是0.1。

      •  flySpeed: 飛行速度,永遠是0.05。

      •  mayfly: 1或0(true/false) - 玩家能飛行時為真。

      •  flying: 1或0(true/false) - 當玩家正在飛行時為真。

      •  invulnerable: 1或0(true/false) - 如果玩家能抵消所有傷害和有害的效果時為真,除了虛空傷害。(由/kill指令造成的傷害視為虛空傷害)

      •  mayBuild: 1或0(true/false) - 當玩家可以摧毀及放置方塊時為真。

      •  instabuild: 1或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標籤,例如掉落的物品。


    •  Count:堆疊在當前物品欄中的物品數量。任何物品都能被堆疊,包括工具、盔甲、運輸工具。範圍從-128到127。數值為1時不被遊戲顯示。小於1的數值顯示為紅色。

    •  Slot:當前物品所在的物品欄位。

    •  id物品/方塊ID。若未指定,遊戲會在加載區塊或者生成物品時將其變更為石頭

    •  tag:關於當前物品的額外信息,詳細內容請見物品結構章節。此標籤對於多數物品來說都是非必須項。

通用標籤[編輯 | 編輯原始碼]

一個帶有耐久度的物體可以設定為無法破壞並永遠不損失任何耐久。同樣,通過指令修改的物品可以讓冒險模式的玩家放置或破壞指定的方塊。


  •  tag: 父標籤。

    •  Damage: 物品的損害值。預設為0。

    •  Unbreakable: 1 或 0 (true/false) - 如果是true,物品無論使用多少次都不會損失耐久。

    •  CanDestroy: 冒險模式的玩家可以使用這個工具破壞的方塊。

    •  CustomModelData: 用於物品模型的 overrides 屬性中的物品標籤 「custom_model_data」。

方塊標籤[編輯 | 編輯原始碼]

方塊可以被賦予標籤指定冒險模式的玩家可以放在哪些方塊上面,並且可以指定放置時附加上哪些方塊實體標籤。


  •  tag: 父標籤。

    •  CanPlaceOn: 冒險模式的玩家可以將方塊放置在其表面的方塊。

      • : 方塊ID。

    •  BlockEntityTag: 方塊放置後應用的方塊實體NBT標籤。[1]用於儲存旗幟盾牌的數據,並且可以通過在創造模式下按住ctrl(mac上為⌘ Cmd)並按下選取方塊鍵來獲取擁有方塊實體標籤的方塊。

    •  BlockStateTag: 一個複合標籤。其中每個關鍵字都是方塊狀態名稱,每個值都是對應方塊狀態的值。放置時會強制附加方塊標籤。

      •  方塊狀態關鍵字: 要編輯的方塊狀態。例如:facing: "east"

附魔[編輯 | 編輯原始碼]

附魔和物品可以有兩種關係——第一種,物品被「真附魔」,即物品擁有了附魔提供的屬性;第二種,物品的附魔被標註為附魔書類型,這種附魔僅僅能達到存儲附魔的效果,物品的屬性並不會因為這種附魔而改變。RepairCost標籤則會記錄該物品的鐵砧使用次數,以實現附魔所需經驗等級隨使用次數增加而增加的特徵。


  •  tag: 父標籤。

    •  Enchantments:包含影響物品特徵的附魔信息。

      • :一條附魔。

        •  id:附魔的名稱。

        •  lvl:附魔的等級,1表示等級1。

    •  StoredEnchantments:包含附魔書的附魔。

      • :一條存儲著的附魔,結構與Enchantments中的各條附魔相同。

    •  RepairCost:當在鐵砧上修理、合併或重命名當前物品時,表示在基礎等級消耗之上額外增加的附魔等級。

StoredEnchantments如果附加到附魔書以外的物品上,則不會顯示其中的附魔。但是,存儲在Enchantments中的附魔將始終顯示其擁有的附魔並且會使物品發光,即使它們無法產生任何實際效果。

屬性修飾符[編輯 | 編輯原始碼]

所有的物品都可以被賦予修飾符,令玩家/實體當穿著或者手持物品時賦予其屬性。請注意,如果一個物品在原版就擁有AttributeModifiers標籤,那麼物品屬性將會被新增的標籤覆蓋(比如說如果給一把鑽石劍附加了一個空的AttributeModifiers列表,它將無法增加攻擊傷害)。另請注意,預設的AttributeModifiers並沒有實際使用這個標籤,因此它不會出現在自然物品上。


  •  tag: 父標籤。

    •  AttributeModifiers: 包含了物品的修飾屬性。它將修改佩戴者或持有者的屬性(如果物品沒有手持或裝備,它將不會產生效果)。

      • : 單個屬性修飾符。

        •  AttributeName: 此修飾符的屬性名稱。

        •  Name: 修飾符的名稱。

        •  Slot: 指定修飾符產生效果的槽位。值只能為"mainhand"、"offhand"、"feet"、"legs"、"chest"或"head"。

        •  Operation: Modifier Operation.詳見屬性修飾符

        •  Amount: 這個修飾符的數額。

        •  UUIDMost: 屬性的UUID高位。

        •  UUIDLeast: 屬性的UUID低位。

藥水效果[編輯 | 編輯原始碼]

藥水飛濺藥水滯留藥水藥水箭可以通過CustmPotionEffects標籤擁有多個自定義效果。如果存在,這些效果將添加到Potion標籤內的預設效果中。此外,可以使用CustomPotionColor標記設定藥水顏色。


  •  tag: 父標籤。

    •  CustomPotionEffects:當前藥水或藥水箭所含有的自定義狀態效果。從此標籤獲得效果的藥水或藥水箭會分別被命名為「水瓶」或「飛濺之箭」。

      • :一項效果

        •  Id效果的數字ID.

        •  Amplifier:效果的倍率,等級1的值為0。負值的效果見這裡。非必須項,預設為等級1。

        •  Duration:效果的持續時長數。值小於等於0時被作為1處理。非必須項,預設為1刻。

        •  Ambient:1或0(true/false),如果效果由烽火台施加,那麼為true,使效果在屏幕上不會那麼顯眼。非必須項,預設為false。有項錯誤使其對飛濺藥水無效。

        •  ShowParticles:1或0(true/false),如果顯示粒子密度,那麼為true。非必須項,預設為true。有項錯誤使其對飛濺藥水無效。

        •  ShowIcon:1或0(true/false),如果效果圖標顯示,那麼為true。不顯示效果圖標則為false。

    •  Potion預設藥水效果的名稱。此項與狀態效果的名稱不同,例如「立即治療II」藥水的值為「minecraft:strong_healing」。從此標籤獲得效果的藥水或藥水箭會根據合適效果獲得名稱。

    •  CustomPotionColor:當前物品使用這項自定義顏色,範圍效果雲、箭、飛濺與滯留藥水會使用該值作為其粒子密度顏色。但是,此顏色不會延伸到最終受到該效果作用的實體放出的粒子顏色。數字顏色代碼由紅綠藍組分通過下列算式計算:<<16 + <<8 + 。對於大於0x00FFFFFF的正值,最高字節會被略去。所有的負值都表示白色。

[編輯 | 編輯原始碼]

使用NBT標籤保存弩中裝載的物品。


  •  tag: 父標籤。

    •  ChargedProjectiles: 弩裝填的物品。一般只有一個(如果附魔了分裂箭矢則為三個)。

    •  Charged: 弩是否已裝填。

顯示屬性[編輯 | 編輯原始碼]

皮革盔甲可以被染色,並且所有物品都可以擁有自定義名稱和說明。工具提示也可以被隱藏。


  •  tag: 父標籤。

    •  display: 顯示屬性。

      •  color: 皮革盔甲的顏色。如果禁用高級工具提示,則工具提示將顯示「已染色」,否則將顯示十六進位顏色值。顏色值可以用以下公式計算:
        紅色值×65536 + 綠色值×256 + 藍色值×1
        (由於Java語言的特殊規定,Java里顏色值的計算公式與多數其他語言的公式「R+256×G+65536×B」相反。)[2]

      •  Name: 物品顯示的名稱,要求使用JSON文本

      •  Lore: 物品顯示的信息。

        • 單行物品信息。

    •  HideFlags: 決定隱藏顯示物品的哪些信息。1對應"Enchantments"、2對應"AttributeModifiers"、4對應"Unbreakable"、8對應 "CanDestroy"、16對應 "CanPlaceOn"、32對應其他信息(包括藥水效果、"StoredEnchantments"、完成的書的 "generation" 和 "author"、煙火的"Explosion"和"Fireworks",以及地圖提示)。例如,設定為3時,"Enchantments"和"AttributeModifiers"標籤不會顯示,設定為63時所有信息都不顯示。

完成的書[編輯 | 編輯原始碼]

書和羽毛筆完成的書的內容信息都儲存在tag標籤里。只有完成的書擁有title標籤、author標籤和generation標籤;pages標籤兩者都有。


  •  tag: 父標籤。

    •  resolved:可選的。當書在簽名後第一次打開為1。用於決定是否解析JSON目標選擇器(包括通過記分板選擇玩家),因為他們的選擇可以被修復

    •  generation:書的副本級別。0表示原作,1表示原作的副本,2表示複本的複本,3表示破舊的。如果值大於1,書就不可以被複製。原始的書不存在該標籤。如果該標籤不存在,書將視為原作。「破舊的」在正常遊戲中不被使用,且與「複本的複本」一樣不可複製。

    •  author:完成的書的作者。

    •  title:完成的書的標題。

    •  pages:完成的書的各個頁面。

      • 完成的書的一個單頁。如果是通過書和羽毛筆完成的完成的書,每一頁都會是用雙引號括起來的文字,文字內的雙引號轉義為\",換行用\n轉義,反斜槓用\\轉義。如果是通過指令或第三方工具創建的,那麼可以是一個JSON文本組合,或者是沒有轉義的字符串。

玩家的頭顱[編輯 | 編輯原始碼]

玩家的頭顱可以被一名指定用戶名的玩家的外觀頭顱取代。僅在手持該物品時會隨著這名玩家的外觀改變而改變。在此部分中,一個頭顱的「所有者」表示被獲取其頭顱的玩家,「持有者」表示在物品欄內擁有頭顱的玩家。


  •  tag: 父標籤。

    •  SkullOwner: 頭顱對應的玩家的用戶名。其將會轉換為複合標籤的版本。

    •  SkullOwner: 對頭顱所有者不同的定義。注意Owner被用於放置在地上的頭顱。

      •  Id: 所有者的UUID,可選。用於在區塊加載時或持有者登錄時更新其他標籤,防止所有者的名稱被更改。

      •  Name: 所有者的用戶名。頭顱對應的玩家名。如果留空,則預設為Steve的頭顱。否則嘗試加載對應的玩家的頭顱。並不要求一定是合法的用戶名,但是不能全是空格。

      •  Properties

        •  textures

          • : 個人材質。

            •  Signature: 可選。

            •  Value: 1個Base64編碼的JSON對象。[3]

              •  timestamp: 可選:毫秒內的Unix時間

              •  profileId: 可選:無連字符的玩家UUID。

              •  profileName: 可選:玩家名稱。

              •  isPublic: 可選。

              •  textures

                •  SKIN

                  •  url: textures.minecraft.net里玩家外觀的URL。

                •  CAPE: 可選。

                  •  url: 玩家披風的URL(64x32的PNG格式)。

煙火[編輯 | 編輯原始碼]

煙火使用tag標籤存儲有關其效果的信息。


  •  tag: 父標籤。

    •  Explosion: 其中的一個將會出現在火藥球

      •  Flicker: 1或0 (true/false) - 若為真則會出現閃爍效果(螢石粉),可能缺失。

      •  Trail: 1或0 (true/false) - 若為真則有拖曳痕跡(鑽石),可能缺失。

      •  Type: 爆炸時的形態. 0 = 小球, 1 = 大球 ,2 = 星星,3 = 苦力怕頭顱,4 = 爆裂。其他值將會被認定為未知,均為小型球狀。

      •  Colors: 一個整數數組以表達爆炸時的顏色。如果自定義顏色代碼被使用,遊戲將在工具提示中顯示為「自定義」,不過爆炸時會產生正確的顏色。自定義顏色的整數格式與顯示設定中的color標籤相同。

      •  FadeColors: 數組表示爆炸後的淡化顏色。處理自定義顏色的方式和Colors相同。可能缺失。

    •  Fireworks: 其中的一個會出現在煙火

      •  Flight: 煙火飛行的持續時間(與製作時使用的火藥量相同)。可以為-128至127的任意值。

      •  Explosions: 包含煙火包含的每個爆炸的複合標籤列表。

        • 與「Explosion」的格式相同,上面已經介紹過了。

盔甲座和生怪蛋[編輯 | 編輯原始碼]

盔甲座生怪蛋可能包含內部實體的數據。


  •  tag: 父標籤。

    •  EntityTag: 存儲了創建實體時應用於實體上的實體數據。

魚桶[編輯 | 編輯原始碼]

魚桶可能包含內部實體的數據。


  •  tag: 父標籤。

    •  BucketVariantTag: 桶中熱帶魚的種類數據。僅用於熱帶魚桶。

    •  EntityTag: 存儲了傾倒時應用於魚的實體數據。如果這個資料包含了熱帶魚的種類,它將覆蓋BucketVariantTag

地圖[編輯 | 編輯原始碼]

地圖可能會被縮放。


  •  tag: 父標籤。

    •  map: 地圖編號。

    •  map_scale_direction: 僅在縮放地圖時由內部使用,之後直接刪除:在合成時增加當前地圖比例的量。總是為1。

    •  Decorations: 地圖上顯示的圖標。在重新加載世界之前,刪除或修改的圖標不會被更新。

      • 一個符號。

        •  id: 識別符號的隨機唯一字符串。

        •  type: 要顯示的地圖圖標的ID。

        •  x: 符號在世界上所在的X坐標。

        •  z: 符號在世界上所在的Z坐標。

        •  rot: 符號的旋轉角度,範圍從0.0到360.0,方向為順時針。與圖標材質中的外觀相比,旋轉角度為0.0所顯示的圖標上下顛倒。

    •  display: display標籤。

      •  MapColor: 物品材質里標記的顏色。

可疑的燉湯[編輯 | 編輯原始碼]

可疑的燉湯儲存了它們的狀態效果


  •  tag: 父標籤。

    •  Effects: 這個可疑的燉湯擁有的狀態效果

      • 其中一種效果。

        •  EffectId: 這個狀態效果的數字ID。

        •  EffectDuration: 以為單位的持續時間。數值低於0則設為1。一般情況下數值預設為160刻(8秒)。

除錯棒[編輯 | 編輯原始碼]

除錯棒使用NBT格式儲存對每個方塊編輯的方塊狀態。


  •  tag: 父標籤。

    •  DebugProperty: 除錯棒編輯的方塊和其狀態的列表。

      •  方塊ID: 要編輯的方塊狀態名。例如:"minecraft:oak_fence": "east"

物品欄槽位號碼[編輯 | 編輯原始碼]

這展示了使用NBT編輯器編輯時用於指定物品欄中槽位的編號。

歷史[編輯 | 編輯原始碼]

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

參考[編輯 | 編輯原始碼]

  1. 假設這個方塊物品和創建的方塊實體都是同一種類型。如果不是,BlockEntityTag將不會生效。
  2. 對於大於0x00FFFFFF的正值,將忽略其頂部字節。所有負值都會產生白色。
  3. FVbico和Steven W.d.V.在MC-51003上的評論。