<本站文本内容除另有声明外,转载时均必须注明出处。(详情…本站文本内容除另有声明外,转载时均必须注明出处。(详情…中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!中文Minecraft Wiki是完全公开的。请勇于扩充与修正内容!Minecraft中文Wiki微博正在更新!或许有兴趣去看看Minecraft中文Wiki微博正在更新!或许有兴趣去看看想与其他用户进行编辑上的沟通?社区专页正是为此创建的。想与其他用户进行编辑上的沟通?社区专页正是为此创建的。翻译或创建页面之前,不妨看看译名标准化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标签。
    •  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。通过附魔台或战利品表创建时以 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: 这个修饰符的数额。
        •  UUIDMost[失效:JE 1.16]: 属性的UUID高位。
        •  UUIDLeast[失效:JE 1.16]: 属性的UUID低位。
        •  UUID‌‌[新增:JE 1.16]:属性的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:成书的标题。
    •  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.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上的评论。