Minecraft Wiki

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

了解更多

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

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

用途[]

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

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

文件结构[]

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

JSON结构[]

  • 包含多个物品修饰器对象的列表,其效果等效于sequence类型。里面的内容与下方的物品修饰器对象一致。
  • 一个物品修饰器。
    •  function:应用物品修饰器类型的命名空间ID。可用的类型将在下方列出。
    • 对于类型要求的额外标签,在下面和对应类型一并列出。

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

  • apply_bonus - 修改物品的数量。
    •  enchantment:用来进行魔咒等级计算的魔咒ID。
    •  formula:计算公式。可选值为uniform_bonus_count(均匀分布随机数)、ore_drops(矿物掉落随机算法)和binomial_with_bonus_count(二项分布随机数)。
    •  parameters:计算所需的参数。
      • 如果 formulauniform_bonus_count,则为均匀分布的随机数,值域为,其中l是魔咒等级,c是物品数量:
      •  bonusMultiplier:均匀分布中的乘数,即公式中的b
        如果 formulaore_drops,则为矿物掉落算法。如果魔咒等级l为0,则返回物品数量c;如果魔咒等级l大于0,则最终物品数量可以根据魔咒等级翻倍,最高可以为原数量的倍。
        如果 formulabinomial_with_bonus_count,则为二项分布随机数。物品最终的数量为原数量与这个二项分布随机数的和。
      •  extraRounds:额外计算的次数。二项分布计算的n为魔咒等级与额外计算次数之和。
      •  probability:二项分布中的概率p
  • copy_name - 将物品的名称设置为对应实体或方块实体的名称。
    •  source:物品名称的来源。可以为this(执行战利品生成的实体)、killer(杀死本实体的实体)、killer_player(杀死本实体的玩家)和block_entity(物品对应方块的方块实体)。
  • copy_nbt - 拷贝NBT到物品的标签中。
    •  ops:复制操作列表。
      • :一个复制操作。
        •  op:设置为replace以替换目标的所有存在的内容,设置为append以追加到一个列表,或设置为merge以融合到一个复合标签。
        •  source:复制源的NBT路径
        •  target:要复制到的NBT路径。
    •  source:指定NBT的复制源。可以是一个实体或方块实体,或引用一个命令存储。如果为字符串,则会指定一个实体或方块实体,值与下方 target相同。
      •  type:复制源的类型。可以为context(实体或方块实体)和storage(使用命令存储)。
        如果 typecontext,附加标签如下:
      •  target:指定作为复制源的实体或方块实体。可以为block_entity(物品对应方块的方块实体)、this(执行战利品生成的实体)、killer(杀死本实体的实体)、killer_player(杀死本实体的玩家)和direct_killer(进行直接击杀本实体的实体)。
        如果 typestorage,附加标签如下:
      •  source:指定作为复制源的命令存储的命名空间ID
  • copy_state - 当物品是由方块产生时,复制方块的方块状态到物品的BlockStateTag标签;否则此物品修饰器不做任何处理。
    •  block:一个方块ID,如果与方块不匹配,这个修饰器将失效。
    •  properties:要复制的状态属性列表。
      • :一个要被复制的方块状态属性名称。
  • enchant_randomly - 为物品附上一个随机的魔咒。魔咒的等级也是随机的。
    •  enchantments:能够附上的魔咒。如果没有此标签,则随机选取此物品可以附上的所有非宝藏魔咒。
      • :一项魔咒的命名空间ID。
  • enchant_with_levels - 使用指定的魔咒等级附魔物品(大约等效于使用这个等级的附魔台附魔物品)。
    •  levels:指定该魔咒的等级。
      • 数值提供器
    •  treasure:决定了物品是否能被附上宝藏魔咒。
  • exploration_map - 将普通的地图物品变为一个指引到某个结构的探险家地图。如果物品不是地图,则不做任何处理。
    •  decoration:(可选)结构在地图中显示的地图图标ID。如果不存在或值错误则默认为MANSION,即林地府邸的地图图标。
    •  destination:(可选)目标结构的命名空间ID。如果不存在则默认为mansion林地府邸)。
    •  search_radius:(可选)搜寻的区块半径,使用切比雪夫距离。默认为50。
    •  skip_existing_chunks:(可选)是否不在已经生成过的区块搜寻。默认为true
    •  zoom:(可选)地图缩放等级。默认为2。
  • explosion_decay - 如果物品是因为方块被爆炸破坏而产生,执行该函数的每个物品有1/爆炸半径的概率消失,堆叠的物品会被分为多个单独的物品计算;否则此物品修饰器不做任何处理。
  • fill_player_head - 将玩家头颅设置为指定玩家的头颅。如果物品不是玩家头颅则不做任何处理。
    •  entity:用于设置该玩家头颅的玩家。可以为this(执行战利品生成的实体)、killer(杀死本实体的实体)、killer_player(杀死本实体的玩家)和direct_killer(进行直接击杀本实体的实体)。
  • furnace_smelt - 将物品转变为烧炼后的对应物品。如果物品不可烧炼,则不做任何处理。
  • limit_count - 限制物品数量。
    •  limit:限制物品的数量,物品数量会被钳制在此区间内。
      •  min:最小数量。
        • 数值提供器
      •  max:最大数量。
        • 数值提供器
  • looting_enchant - 决定了抢夺魔咒对该物品数量的影响。如果未使用,抢夺魔咒将对该物品没有效果。
    •  count:每等级抢夺魔咒使得物品需要增加的数量。
      • 数值提供器
    •  limit:物品的最大数量,超过此数量会被强制限制在此数量。如果设置为0,则无限制。
  • reference - 引用另一个物品修饰器。
    •  name:物品修饰器的命名空间ID。如果发生循环调用,则会产生警告。
  • sequence - 按照定义顺序依次执行物品修饰器。
    •  functions:物品修饰器列表。
      • 内部标签与物品修饰器对象结构相同。
  • set_attributes - 为物品加上属性修饰符
    •  modifiers:属性修饰符列表。
      • :一个修饰符。
        •  amount:指定修饰值。
          • 数值提供器
        •  attribute:此修饰器修饰属性的命名空间ID。
        •  id:(可选)修饰符的UUID
        •  name:修饰符的名称。
        •  operation:修饰符的运算模式,可以为addition(增量操作,Op0)、multiply_base(倍率操作,Op1)和multiply_total(最终倍乘操作,Op2)。
        •  slot:指定修饰符产生效果的槽位。值只能为mainhand(主手)、offhand(副手)、head(头盔)、chest(胸甲)、legs(护腿)或feet(靴子)。当此项为列表时,列表内的字符串都为可以使修饰符产生效果的槽位。
  • set_banner_pattern - 设置旗帜物品的图案。如果物品不是旗帜,则此修饰器不做任何处理。
    •  append:表示是否将图案追加在原先的图案上,否则将替换原先的图案。
    •  patterns:旗帜物品图案。
      • :一项旗帜图案
        •  color:旗帜图案的颜色。
        •  pattern:旗帜图案的类型。
  • set_contents - 设置容器方块物品的内容物。
    •  entries:用于设置内容物的项目列表。
    •  type:容器方块物品的方块实体命名空间ID。
  • set_count - 设置该物品的数量。
    •  add:(可选,默认为false)表示是否在原有的数量上继续增加数量,否则直接设置为对应数量。
    •  count:设置物品的数量。
      • 数值提供器
  • set_damage - 设置工具的损害值。
    •  add:(可选,默认为false)表示是否在原有的损害上继续增加损害值,否则直接设置为对应损害值。
    •  damage:设置物品损害值比率,1为未损坏,0为完全损坏。
      • 数值提供器
  • set_enchantments - 设置物品的魔咒。
    •  add:(可选,默认为false)表示是否在原有的魔咒等级上继续增加等级,否则替换原先的魔咒。
    •  enchantments:要添加的魔咒。
      •  <魔咒的命名空间ID>:指定魔咒及其等级。
        • 数值提供器
  • set_instrument - 设置山羊角的种类。如果物品不是山羊角则不做任何处理。
    •  options:山羊角种类的标签
  • set_loot_table - 为一个容器方块物品设定战利品表。
    •  name:指定战利品表的命名空间ID。
    •  seed:(可选)指定战利品表的种子。如果不存在或设为0,游戏将会使用随机序列
    •  type:容器方块物品的方块实体命名空间ID。
  • set_lore - 在物品上添加附加文本标签。
    •  entity:指定JSON文本里中@s表示的实体。可以为this(执行战利品生成的实体)、killer(杀死本实体的实体)、killer_player(杀死本实体的玩家)和direct_killer(进行直接击杀本实体的实体)。
    •  lore:物品的附加文本。
    •  replace:(可选,默认为false)表示是否替换物品当前的附加文本,否则将在原有的附加文本后添加新的文本。
  • set_name - 设置该物品的自定义名称。
    •  entity:指定JSON文本里中@s表示的实体。可以为this(执行战利品生成的实体)、killer(杀死本实体的实体)、killer_player(杀死本实体的玩家)和direct_killer(进行直接击杀本实体的实体)。
    •  name:物品自定义的名称,是一个JSON文本
  • set_nbt - 在该物品上添加NBT标签
    •  tag:要添加的NBT标签,内部的双引号需要使用\转义。
  • set_potion - 设置物品包含的药水效果标签。
  • set_stew_effect - 为谜之炖菜添加状态效果
    •  effects:要加上的状态效果。
      • :一个效果。
        •  duration:指定状态效果的持续时间。
          • 数值提供器
        •  type:状态效果ID。

历史[]

Java版
1.1720w46a加入了物品修饰器。
1.1821w39a加入了set_potion类型。
1.1921w17a加入了set_goat_horn_sound类型。
22w18aset_goat_horn_sound类型改为set_instrument
1.2023w14a加入了reference类型。
1.20.223w32a加入了sequence类型。

语言

Advertisement