此特性为Java版独有。
物品修饰器是用于在命令/item
中为已有的物品添加战利品表函数的技术性JSON文件。物品修饰器是数据包的一部分。
用途
物品修饰器可用于在/item
命令内为物品附加战利品表函数。
原版游戏内不存在物品修饰器,只能通过数据包创建。
文件结构
|
JSON结构
- 包含多个函数对象的列表。里面的内容与下方的函数对象一致。
- 一个函数对象。
- function:应用的函数的命名空间ID。可使用的函数将在下方列出。
- 该函数的其他部分,指定的部分在下面列出。
以下为 function的可能取值及其相关的额外内容:
- apply_bonus - 使用默认的随机池计算公式。
- enchantment:用来进行等级计算的附魔ID。
- formula:计算公式。可以设置为
binomial_with_bonus_count
进行二项分布计算(公式为n=level + extra
,其中p=probability
),uniform_bonus_count
进行均匀分布计算(取值从0
到level * 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
。
- extra:参与
- copy_name - 用于种类为
block
的战利品表,方块实体的CustomName
标签复制到物品的display.Name
标签。- source: "block_entity" - 需要被设定为
block_entity
。
- source: "block_entity" - 需要被设定为
- copy_nbt - 拷贝NBT到物品的
tag
标签。- source: 指定复制源。设置为
block_entity
来表示被破坏了的方块的方块实体,设置为this
来表示死亡的实体或获得进度、打开容器或损坏方块的玩家,设置为killer
来表示击杀者,或设置为killer_player
来表示一个是玩家的击杀者。 - ops:操作列表。
- 一个操作(operation)。
- source:要被复制的NBT路径。
- target:要复制到的NBT路径,从物品的
tag
标签开始。 - op:设置为
replace
以替换目标的所有存在的内容,设置为append
以追加到一个列表,或设置为merge
以融合到一个复合标签。
- 一个操作(operation)。
- source: 指定复制源。设置为
- copy_state - 复制方块的方块状态到物品的
BlockStateTag
标签。- block:一个方块ID,如果与方块不匹配,这个函数将失效。
- properties:操作列表。
- 一个要被复制的方块状态名称。
- enchant_randomly - 为物品附上一个随机的附魔。附魔的等级也是随机的。
- enchantments:能够附上的附魔。如果没有此标签,所有可以对该物品附上的附魔都可能被附上。
- enchant_with_levels - 使用指定的附魔等级附魔物品(大约等效于使用这个等级的附魔台附魔物品)。
- treasure: 决定了物品是否能被附上宝藏附魔。
- levels: 一个值提供器。指定该附魔的准确等级。
- exploration_map - 将普通的地图物品变为一个指引到某个结构的探险家地图。
- explosion_decay - 在“block”类型的战利品表中使用。如果该方块是被爆炸破坏的,执行该函数的每个物品有1/爆炸半径的几率消失,堆叠的物品会被分为多个单独的物品计算。
- fill_player_head - 给玩家头颅添加指定物品标签。
- entity:用于设置该玩家头颅的玩家。设置为
this
来表示死亡的实体或获得进度、打开容器或损坏方块的玩家,设置为killer
来表示击杀者,或设置为killer_player
来表示一个是玩家的击杀者。
- entity:用于设置该玩家头颅的玩家。设置为
- 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:列表中的其中一个格子会被随机选择
- :一个修改器(modifier)。
- modifiers
- set_contents - 用于种类为
block
的战利品表,为这个方块容器设置内容物。- entries:用于设置内容物的项目列表。格式与战利品表随机池中的
entries
一致。
- entries:用于设置内容物的项目列表。格式与战利品表随机池中的
- set_count - 设置该物品的堆叠数量。
- count: 一个值提供器。指定要设置的准确堆叠数量。
- count:指定要设置的一定范围内的随机的堆叠数量。
- type: 分布算法类型。参数位于“count”标签内。
- uniform: 均匀分布。 每个数值被选取的可能性相同。
- min:堆叠数量的最小值。
- max:堆叠数量的最大值。
- binomial: 二项分布。进行多次选取,每次选取都有几率增加一个堆叠数量。
- n: 选取次数。
- p: 每次选取中成功的几率。
- uniform: 均匀分布。 每个数值被选取的可能性相同。
- type: 分布算法类型。参数位于“count”标签内。
- set_damage - 设置工具的损伤值(耐久度)。
- damege:一个值提供器。指定损伤值的比率(1.0是没有使用过,0.0则是剩下0耐久度)。
- add:可选的。若为真,则此次更改将会基于当前的损伤值。
- set_enchantments - 设置物品的附魔。
- enchantments:要添加的附魔。
- An enchantment:键名为魔咒ID,键值为一个值提供器,指定附魔等级。
- add:可选的。若为真,则此次更改将会基于当前的附魔。
- enchantments:要添加的附魔。
- 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标签,和命令的使用方法类似。注意最外层括号需要书写花括号(
{}
)以及内部的引号需要使用转义符(\
)标记。
- tag:添加nbt标签,和命令的使用方法类似。注意最外层括号需要书写花括号(
- set_potion - 设置物品的
Potion
标签- id: 药水ID.
历史
Java版 | |||||
---|---|---|---|---|---|
1.17 | 20w46a | 加入了物品修饰器。 | |||
1.18 | 21w39a | 加入了set_potion 函数。 |
漏洞
Template:Issue list
组件 |
| ||
---|---|---|---|
数据包 | |||
教程 |