本站文本内容除另有声明外,转载时均必须注明出处。(详情…本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。翻译或创建页面之前,不妨看看译名标准化Wiki条例页面。需要管理员的协助?在管理员告示板留言也许可以帮到您。需要管理员的协助?在管理员告示板留言也许可以帮到您。
各位用户:为了让我们能更好了解您的需求,提供更优良的服务,请帮助我们填写一份问卷。编者问卷读者问卷(需要花费7分钟左右)

Hi Gamepedia users and contributors! Please complete this survey to help us learn how to better meet your needs in the future. We have one for editors and readers. This should only take about 7 minutes!

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上的评论。