Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Information icon
此特性为Java版独有。

物品修饰器是用于在命令/item中为已有的物品添加战利品表函数的技术性JSON文件。物品修饰器是数据包的一部分。

用途

物品修饰器可用于在/item命令内为物品附加战利品表函数。

原版游戏内不存在物品修饰器,只能通过数据包创建。

文件结构

  • (数据包根目录)
    • data
      • (命名空间)
        • item_modifiers
          • (名称).json

JSON结构

  • 包含多个函数对象的列表。里面的内容与下方的函数对象一致。
  • 一个函数对象。
    •  function:应用的函数的命名空间ID。可使用的函数将在下方列出。
    • 该函数的其他部分,指定的部分在下面列出。

以下为 function的可能取值及其相关的额外内容:

  • apply_bonus - 使用默认的随机池计算公式。
    •  enchantment:用来进行等级计算的附魔ID。
    •  formula:计算公式。可以设置为binomial_with_bonus_count进行二项分布计算(公式为n=level + extra,其中p=probability),uniform_bonus_count进行均匀分布计算(取值从0level * bonusMultiplier),或ore_drops使用原版游戏内置的计算矿物掉落的特殊函数计算(Count * (max(0; random(0..Level + 2) - 1)+1))。
    •  parameters:计算所需的参数。
      •  extra:参与binomial_with_bonus_count计算时的extra
      •  probability :参与binomial_with_bonus_count计算时的p
      •  bonusMultiplier :参与uniform_bonus_count计算时的因数bonusMultiplier
  • copy_name - 用于种类为block的战利品表,方块实体的CustomName标签复制到物品的display.Name标签。
    •  source: "block_entity" - 需要被设定为block_entity
  • copy_nbt - 拷贝NBT到物品的tag标签。
    •  source: 指定复制源。设置为block_entity来表示被破坏了的方块的方块实体,设置为this来表示死亡的实体或获得进度、打开容器或损坏方块的玩家,设置为killer来表示击杀者,或设置为killer_player来表示一个是玩家的击杀者。
    •  ops:操作列表。
      • 一个操作(operation)。
        •  source:要被复制的NBT路径。
        •  target:要复制到的NBT路径,从物品的tag标签开始。
        •  op:设置为replace以替换目标的所有存在的内容,设置为append以追加到一个列表,或设置为merge以融合到一个复合标签。
  • copy_state - 复制方块的方块状态到物品的BlockStateTag标签。
    •  block:一个方块ID,如果与方块不匹配,这个函数将失效。
    •  properties:操作列表。
      • 一个要被复制的方块状态名称。
  • enchant_randomly - 为物品附上一个随机的附魔。附魔的等级也是随机的。
    •  enchantments:能够附上的附魔。如果没有此标签,所有可以对该物品附上的附魔都可能被附上。
  • enchant_with_levels - 使用指定的附魔等级附魔物品(大约等效于使用这个等级的附魔台附魔物品)。
    •  treasure: 决定了物品是否能被附上宝藏附魔。
    •  levels: 一个值提供器。指定该附魔的准确等级。
  • exploration_map - 将普通的地图物品变为一个指引到某个结构的探险家地图
    •  destination:目标结构的ID。和/locate命令中的参数一样(大小写敏感)。
    •  decoration:该结构在地图中显示的图标。接受所有地图图标ID(大小写敏感)。如果设置为mansion或monument,地图物品的图标将会改变。可以是这些值,大小写敏感。
    •  zoom:地图缩放等级。默认为2。
    •  search_radius:搜寻的区块半径。搜寻的区域是方形,不是圆形。设置为0将只在当前区块搜寻,设置为1将会搜寻当前区块和周围的8个区块,以此类推。默认为50。
    •  skip_existing_chunks:是否不在已经生成过的区块搜寻。默认为true。
  • explosion_decay - 在“block”类型的战利品表中使用。如果该方块是被爆炸破坏的,执行该函数的每个物品有1/爆炸半径的几率消失,堆叠的物品会被分为多个单独的物品计算。
  • furnace_smelt - 物品将变为在熔炉烧炼后的状态。用于被火烧死动物死后掉落烧熟的食物。
  • fill_player_head - 给玩家头颅添加指定物品标签。
    •  entity:用于设置该玩家头颅的玩家。设置为this来表示死亡的实体或获得进度、打开容器或损坏方块的玩家,设置为 killer 来表示击杀者,或设置为killer_player来表示一个是玩家的击杀者。
  • limit_count - 限制每一种物品的堆叠数量。
    •  limit: 一个值提供器。限制堆叠数量为一个精确数字。
    •  limit:限制堆叠数量为一个范围。
      •  min: 一个值提供器。限制的最小值。
      •  max: 一个值提供器。限制的最大值。
  • looting_enchant - 决定了抢夺附魔对该物品数量的影响。如果未使用,抢夺附魔将对该物品没有效果。
    •  count: 一个值提供器。决定了每等级抢夺附魔使得物品需要增加的准确数量。
    •  limit:指定在计算物品数量增加时的最大限制(也就是说,如果抢夺附魔等级足够高使算出数量超出此限制,则使用限制的数量而不是算出的数量)。如果这个值为0,则不会有限制。
  • set_attributes - 为物品加上属性修饰符。
    •  modifiers
      • :一个修改器(modifier)。
        •  name:修改器的名称。
        •  attribute:此修改器修改的属性的名称。
        •  operation:修改数值的方法。必须是addition、multiply_base或multiply_total。
        •  amount: 一个值提供器。指定修改的准确数值。
        •  amount:指定修改的数值的范围,在范围内随机抽取。
          •  min:最小数值。
          •  max:最大数值。
        •  id:可选:修改器的UUID。如果没有指定,则生成新的UUID(此UUID為有連字元的十六進位)。
        •  slot:只有当该物品放在指定的格子时,该修改器才有用,这个数值可以是以下任何一个:mainhand、offhand、feet、legs、chest、head。
        •  slot:列表中的其中一个格子会被随机选择
  • set_contents - 用于种类为block的战利品表,为这个方块容器设置内容物。
    •  entries:用于设置内容物的项目列表。格式与战利品表随机池中的entries一致。
  • set_count - 设置该物品的堆叠数量。
    •  count: 一个值提供器。指定要设置的准确堆叠数量。
    •  count:指定要设置的一定范围内的随机的堆叠数量。
      •  type: 分布算法类型。参数位于“count”标签内。
        • uniform: 均匀分布。 每个数值被选取的可能性相同。
          •  min:堆叠数量的最小值。
          •  max:堆叠数量的最大值。
        • binomial: 二项分布。进行多次选取,每次选取都有几率增加一个堆叠数量。
          •  n: 选取次数。
          •  p: 每次选取中成功的几率。
  • set_damage - 设置工具的损伤值(耐久度)。
    •  damege:一个值提供器。指定损伤值的比率(1.0是没有使用过,0.0则是剩下0耐久度)。
    •  add:可选的。若为真,则此次更改将会基于当前的损伤值。
  • set_enchantments - 设置物品的附魔。
    •  enchantments:要添加的附魔。
      •  An enchantment:键名为魔咒ID,键值为一个值提供器,指定附魔等级。
    •  add:可选的。若为真,则此次更改将会基于当前的附魔。
  • set_loot_table - 为一个容器(比如箱子)设定战利品表。
    •  name:指定战利品表的命名空间ID
    •  seed:可选。指定战利品表的种子。如果不存在或设为0,游戏将会使用随机种子。
  • set_lore - 在物品上添加lore(附加文本)标签。
    •  lore:一个JSON文本列表,列表中的每一个项都是物品的一行lore。
    •  entity:指定JSON文本里中@s表示的实体。设置为this以使这个实体为死亡的实体或得到进度,打开容器,打开容器,破坏方块的玩家;设置为killer以使这个实体为杀死实体的杀手;设置为killer_player以使这个实体为杀死实体的玩家。
    •  replace:如果为true,则替换物品当前的lore;如果为false,则在物品lore后添加内容。
  • set_name - 设置该物品的自定义名称。它是一个JSON文本
    •  name:一个JSON文本组件 名称,允许颜色,本地化翻译,等等。
    •  entity:指定JSON文本里的@s实体。设置为this以使这个实体为死亡的实体或得到进度,打开容器,打开容器,破坏方块的玩家;设置为killer以使这个实体为杀死实体的杀手;设置为killer_player以使这个实体为杀死实体的玩家。
  • set_nbt - 在该物品上添加nbt标签。
    •  tag:添加nbt标签,和命令的使用方法类似。注意最外层括号需要书写花括号({})以及内部的引号需要使用转义符(\)标记。
  • set_potion - 设置物品的Potion标签
  • set_stew_effect - 为迷之炖菜添加状态效果
    •  effects:要加上的状态效果。
      • 一个效果。
        •  type:状态效果ID。
        •  duration:一个值提供器。指定状态效果的持续时间。

历史

Java版
1.1720w46a加入了物品修饰器。
1.1821w39a加入了set_potion函数。

漏洞

Template:Issue list

Advertisement