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

player.dat格式

出自Minecraft Wiki
跳到: 導覽搜尋

Information icon.svg
此特性為Java版獨有。

<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標籤。
    •  SpawnDimension: 可能不存在。玩家的床或重生錨所處的維度。該標籤僅在玩家嘗試重生但沒有有效的床或重生錨時移除。它並不會因為玩家破壞了床或重生錨而被影響,也不會因為玩家的死亡而被影響。
    •  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: 玩家騎着的根實體。
      • {{nbt|int-array|Attach: 玩家騎着的實體的 UUID,以長度為4的整型陣列儲存。
      •  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。通過附魔台或戰利品表創建時以 short 存儲,但是以 int 讀取並支持 int 完整的範圍。
    •  StoredEnchantments:包含附魔書的附魔。
      • :一條存儲着的附魔,結構與Enchantments中的各條附魔相同。
    •  RepairCost:當在鐵砧上修理、合併或重命名當前物品時,表示在基礎等級消耗之上額外增加的附魔等級。

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

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

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

  •  tag: 父標籤。
    •  AttributeModifiers: 包含了物品的修飾屬性。它將修改佩戴者或持有者的屬性(如果物品沒有手持或裝備,它將不會產生效果)。
      • : 單個屬性修飾符。
        •  AttributeName: 此修飾符的屬性名稱。
        •  Name: 修飾符的名稱。
        •  Slot: 指定修飾符產生效果的槽位。值只能為"mainhand"、"offhand"、"feet"、"legs"、"chest"或"head"。
        •  Operation: Modifier Operation.詳見屬性修飾符
        •  Amount: 這個修飾符的數額。
        •  UUID:屬性的UUID,以4個32位整數的形式存儲。

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

藥水飛濺藥水滯留藥水藥水箭可以通過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:完成的書的標題,優先級比tag.display.Name低。不能用來打開鎖定的容器。
    •  pages:完成的書的各個頁面。
      • 完成的書的一個單頁。每一頁是一個序列化的JSON文本

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

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

  •  tag: 父標籤。
    •  SkullOwner: 頭顱對應的玩家的用戶名。其將會轉換為複合標籤的版本。
    •  SkullOwner: 對頭顱所有者不同的定義。
      •  Id:擁有者的UUID,可選。用來在區塊載入或擁有者登錄時更新其他標籤。
      •  Name:擁有者的用戶名。
      •  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格式儲存可能存在的磁石羅盤相關的數據。

  •  tag: 父標籤。
    •  LodestoneTracked:可選。1或0 (true/false) - 若為true,則羅盤綁定到一個磁石。為false時,當磁石被破壞後LodestoneDimensionLodestonePos不會被自動移除,羅盤仍然指向該位置。
    •  LodestoneDimension:可選。磁石羅盤指向的坐標的所在維度。
    •  LodestonePos:可選。磁石羅盤指向的坐標。
      •  X:x坐標。
      •  Y:y坐標。
      •  Z:z坐標。


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

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

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

Clock.png
此段落需要更新。

原因:丟失了大量歷史信息.

Java版
1.7.2?對工具加入了Unbreakable
1.814w06a對工具加入了CanDestroy
對物品加入了HideFlags
14w07a對所有方塊加入了BlockEntityTag.
14w10a加入了一個隱藏藥水效果的第5位(值為32)的HideFlags
14w33a對所有物品加入了SelectedItem
1.12pre1對玩家加入了enteredNetherPosition,用於進度觸發器minecraft:nether_travel
1.1318w01aName標籤現在是JSON文本。
移除LocName標籤。使用Name:"{\"translate\":\"gui.toTitle\"}"代替LocName:"gui.toTitle"
18w21aench標籤重命名為Enchantments
1.1418w43aLore標籤現在是JSON文本。
19w06a對方塊的物品形式加入了BlockStateTag

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

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