跳转至

物品函数

物品函数修改物品在 战利品表交易表 中的属性。

TODO
can enchantments be prefixed with minecraft:/whatever?

函数
注意,这里测试的所有内容仅在交易表中使用。
仅可在战利品表和交易表中使用
是具有 function 和其他属性的对象…
不接受 Molang
Java 版本的附加函数或属性均未成功
所有函数都可以以任意文本序列加冒号为前缀,例如 minecraft:exploration_mapd1245436576u:fio2ejfoijfiowejf::::::exploration_map

通用

有一些函数可用于基本的物品属性。这些函数可用于任何物品。

函数 容器战利品 方块掉落 钓鱼 实体掉落 实体装备 交易表
set_count
set_name
set_lore
set_data
random_block_state
random_aux_value
set_damage

数量

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

注意

交易表使用 "quantity" 属性 来设置其数量。

set_count 函数设置该物品条目的数量。

数量函数
{
    "function": "set_count",

    "count": {
        "min": 2,
        "max": 4
    }
}

"count" 属性决定应生成多少该物品;它可以是一个整数或一个 范围对象。提供的数量值可能大于该物品的堆叠上限。当这种情况发生时,物品将在容器中溢出到其他槽位,或者如果掉落到世界中,则分成多个不同的物品堆叠。数量属性实际上默认为 0,因此应始终包括。

名称

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

可以使用 set_name 函数设置物品的名称。名称在用户界面中悬停物品时可见。玩家可以使用铁砧更改名称。

名称函数
{
    "function": "set_name",

    "name": "诅咒之弓"
}

要赋予物品的名称通过字符串 "name" 属性给出。默认情况下,名称文本显示为斜体。然而,物品名称支持格式代码,可以在文本开头插入 §r 以将其重置为非斜体。物品名称中不支持原始文本。可以使用 \n 添加换行符。

描述

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

set_lore 函数设置物品的描述。

描述函数
{
    "function": "set_lore",

    "lore": ["", ""]
}

"lore" 属性配置描述。它可以表示为一个字符串或字符串数组。所有描述字符串都支持格式代码,但不支持本地化。以数组形式,每个字符串代表一行新的描述。每个字符串的格式上下文是独立的,这意味着格式在每个字符串中都会重置。默认情况下,描述使用紫色斜体文本;可以根据需要在每个字符串前添加重置格式代码(§r)来重置。可以在任何描述字符串中使用 \n 来形成换行,同时保留当前的格式上下文。

数据

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

set_data 为给定物品建立数据,类似于 /give 命令中的参数。如果用于方块,它将设置方块的数据值。如果用于物品,它将设置其辅助值。然而,与命令不同,set_data 无法设置物品的耐久度。要设置耐久度,请使用 durability

数据函数
{
    "function": "set_data",

    "data": 2
}

"data" 属性设置物品的数据。如果未提供,将默认为 0"data" 可以是一个整数或一个范围对象。

作为整数:

"data": 1

作为范围对象:

"data": {
	"min": 0,
	"max": 5
}

对象形式将在每次选择此函数的物品条目实例时,在提供的最小值和最大值之间随机选择一个数据值(包含两端)。

方块状态

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

random_block_state 为方块设置一个单独的方块状态。

方块状态函数
{
    "function": "random_block_state",

    "block_state": "wiki:color",
    "values": 3
}

为方块设置一个方块状态
block_state
必需,方块状态的字符串名称
values
可以是数字或最小/最大对象
默认为 0… 否则毫无意义?不确定…

辅助值

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

random_aux_value

辅助值函数
{
    "function": "random_aux_value",

    "values": {
        "min": 2,
        "max": 4
    }
}

设置物品的辅助值
values
可以是整数或最小/最大对象
最小/最大对象均匀随机选择
仅用于辅助值;例如,不会设置工具的耐久度,但会设置羊毛的颜色
覆盖任何作为标识符 :suffix 提供的辅助值,例如 minecraft:wool:10
也适用于方块数据

耐久度

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

可以使用 set_damage 函数设置物品的耐久度。

耐久度函数
{
    "function": "set_damage",

    "damage": {
        "min": 0.5,
        "max": 1
    }
}

"damage" 属性设置物品的耐久度。它可以表示为一个数字或一个 范围对象。值的范围预定为 01,其中 0 是物品的最小耐久度,1 是未损坏。

特定物品数据

某些函数只能由特定的一组物品使用。请参阅每个函数以了解哪些物品相关。

函数 容器战利品 方块掉落 钓鱼 实体掉落 实体装备 交易表
furnace_smelt
set_book_contents
exploration_map ⚠️
set_banner_details
random_dye
set_actor_id
fill_container

加热物品

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

furnace_smelt

加热物品函数
{
    "function": "furnace_smelt"
}

自动暗示实体在死亡时必须处于燃烧状态
原版文件在此使用函数条件,但即使移除该条件,furnace_smelt 函数触发仍然暗示实体必须在燃烧状态下死亡

书籍内容

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

set_book_contents

书籍内容函数
{
    "function": "set_book_contents",

    "title": "",
    "author": "",

    "pages": ["", ""]
}

设置书籍的数据
只能用于 writable_bookwritten_book
author
作者的字符串名称
title
书籍的字符串名称
pages
字符串数组 — 每个字符串是该页的内容
支持最多 50 个字符串,每个字符串最多 798 个字符
所有页面总共有 12,800‌ 字符限制
在字符串中使用 \n(不是 \\n)添加新行
不能使用制表符
可以使用颜色代码;每个不同的页面字符串每次都会重置颜色代码

探险地图

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

exploration_map

探险地图函数
{
    "function": "exploration_map",

    "destination": "village"
}

交易表信息:
destination
目前仅支持 monument(遗迹)和 mansion(豪宅)。
其他地点不支持,甚至包括埋藏的宝藏(这个看起来可以工作 — 正确命名地图而不是像其他的“未知地图”,但不指向任何地方)。 :(

战利品表信息:
Destination
适用于任何 /locate 位置(请参阅旧配方说明中的注意事项;这是针对容器战利品表)
仅在适当的维度中工作
如果是豪宅或遗迹,会正确命名、着色和图标,与正确的标记装饰相对应
如果目标无效或未给出目标,则地图上不会显示标记,但仍有河流和海洋线
适用于容器以及实体装备和掉落
记住只有 2 个地点在交易员那里有效

旗帜类型

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

set_banner_details

旗帜类型函数
{
    "function": "set_banner_details"
}

设置 banner(旗帜)的类型(仅可用于旗帜)
type
只能是 0 或 1
0 是白色旗帜
1 是掠夺者旗帜

随机染色

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

random_dye

随机染色函数
{
    "function": "random_dye"
}

随机为皮革盔甲或马盔甲染色
不适用于羊毛或其他物品

生成蛋

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

set_actor_id

生成蛋函数
{
    "function": "set_actor_id"
}

可用于生成蛋
id
应为生物的标识符
在交易表中,默认为交易员的实体类型

容器内容

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

fill_container

容器内容函数
{
    "function": "fill_container"
}

设置容器方块的内容
loot_table
从行为包根目录开始的战利品表文件路径

需要 loot_table,否则将只是普通物品
不能指向当前的战利品表
适用于容器以及实体相关和方块

附魔

函数 容器战利品 方块掉落 钓鱼 实体掉落 实体装备 交易表
enchant_book_for_trading
enchant_with_levels
enchant_randomly
enchant_random_gear
specific_enchants

交易用书籍附魔

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

enchant_book_for_trading

交易用书籍附魔函数
{
    "function": "enchant_book_for_trading"
}

在交易表中有记录

基于等级的附魔

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

enchant_with_levels 使用附魔台的逻辑为物品附魔,选择性允许宝藏附魔。

基于等级的附魔函数
{
    "function": "enchant_with_levels",

    "levels": {
        "min": 15,
        "max": 21
    },
    "treasure": true
}

按照给定的等级,为书籍附魔,就像在附魔台上一样
与附魔台不同,不限制在 30 级,否则看起来对称
等级 99999 会赋予极其强大的书籍… 几乎包含所有可能的附魔
treasure
启用宝藏附魔作为该物品的可能性
布尔值,默认为 false
如果为 false,诅咒不能作为可能性;如果为 true,可以
levels
可以是数字或最小/最大对象
默认为 0
可以为负数,但将仅作为 0 重新映射。

随机附魔

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

enchant_randomly

随机附魔函数
{
    "function": "enchant_randomly"
}

随机选择一定数量的附魔及其强度为给定的物品附魔
treasure
启用宝藏附魔作为该物品的可能性
布尔值,默认为 false

附魔装备

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

enchant_random_gear

附魔装备函数
{
    "function": "enchant_random_gear"
}

随机选择一定数量的附魔及其强度为给定的物品附魔
类似于 enchant_randomly,但似乎不包括宝藏附魔
在剪刀上不起作用,但甚至在胡萝卜钓鱼竿上有效
chance
0 到 1 的数字
物品被附魔的概率
默认为 0
超过 1 不会使其“更”附魔

特定附魔

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

specific_enchants

特定附魔函数
{
    "function": "specific_enchants"
}

应用一组特定的附魔
enchants
可以是字符串数组或对象
对于数组,任何字符串或对象的混合(见下文)
对于字符串,一个附魔 ID
对于对象:
id
附魔的标识符
请参阅下方的名称
level
可选,默认为 1
可以是一个精确的数字或一个表示最小值和最大值的双值数组,包含两端

外部因素

函数 容器战利品 方块掉落 钓鱼 实体掉落 实体装备 交易表
looting_enchant
explosion_decay
set_data_from_color_index
trader_material_type

持有工具的抢夺附魔

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

looting_enchant

持有工具的抢夺函数
{
    "function": "looting_enchant",

    "count": {
        "min": 0,
        "max": 1
    }
}

count 可以是整数或最小/最大

爆炸衰减

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

explosion_decay

爆炸衰减函数
{
    "function": "explosion_decay"
}

默认情况下,总是存活。如果在爆炸中,根据该方块位置的爆炸威力有机会不掉落

实体颜色

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

set_data_from_color_index

实体颜色函数
{
    "function": "set_data_from_color_index"
}

将方块的数据值设置为实体上的 minecraft:color 组件的值

交易员材料类型

使用情况 可用性
容器战利品
方块掉落
钓鱼
实体掉落
实体装备
交易表

trader_material_type

交易员材料类型函数
{
    "function": "trader_material_type"
}

仅用于交易?也许可以在战利品中某些地方使用