进度条件:实体谓词

进度条件:实体谓词

英文原页:Advancement/Conditions/entity。

原文修订 ID:3825655;原文修订时间:2026-10-07T03:17:06Z。

以下字段用于检测实体。对象内部再次引用实体、物品或位置条件时,使用所链接页面的完整字段结构。

minecraft:entity_type

minecraft:entity_type:字符串或字符串列表。指定实体类型 ID、实体类型 ID 列表,或以 # 开头的实体类型标签 ID,检测此实体的类型。实体类型参见Java 版实体数据值。

minecraft:components

minecraft:components:对象(compound)。精确匹配物品组件值。对象中的每个键对应要检测的组件,值为期望比较的数据。例如,检测生物变种或自定义名称的文本组件是否完全相同时,可避免进行 NBT 序列化。详见数据组件格式。

minecraft:distance

minecraft:distance:对象(compound)。检测到应用此谓词的实体之间的距离。计算出的距离处于给定的浮点数 min 与 max 之间时通过。

内部字段 类型 说明
absolute 浮点数(float)或对象(compound) 检测三维空间中两点间的距离。
horizontal 浮点数(float)或对象(compound) 检测两点间忽略 Y 坐标后的距离。
x 浮点数(float)或对象(compound) 检测两点 X 坐标之差的绝对值。
y 浮点数(float)或对象(compound) 检测两点 Y 坐标之差的绝对值。
z 浮点数(float)或对象(compound) 检测两点 Z 坐标之差的绝对值。

minecraft:effects

minecraft:effects:对象(compound)。检测实体身上激活的状态效果,忽略隐藏效果。

<minecraft:effect_name>:对象(compound)。一项必须存在的状态效果,其内部字段如下。

内部字段 类型 说明
amplifier 整数(int)或对象(compound) 检测效果的增幅等级。等级 I 表示为 0。使用含整数 min、max 的对象可检测范围,包含边界。
duration 整数(int)或对象(compound) 检测效果剩余时间(游戏刻)是否处于两个数之间,包含边界。使用含整数 min、max 的对象可检测范围。
ambient 布尔值 检测此效果是否来自信标。
visible 布尔值 检测此效果是否具有可见粒子。

minecraft:entity_tags

minecraft:entity_tags:对象(compound)。检测实体的标签,即使用 /tag 命令设置的标签。

内部字段 类型 说明
any_of 字符串列表 可选。检测实体是否具有列表中的至少一个标签。
all_of 字符串列表 可选。检测实体是否具有列表中的全部标签。
none_of 字符串列表 可选。检测实体是否不具有列表中的任何标签。

minecraft:equipment

minecraft:equipment:对象(compound)。检测此实体的装备槽位中的物品。

<equipment slot>:对象(compound)。检测实体该装备槽位中的物品。有效键为 mainhand、offhand、head、chest、legs、feet 或 body。每个槽位对象的内部结构使用物品堆叠谓词。

minecraft:flags

minecraft:flags:对象(compound)。检测实体的状态标志。下列各字段均为布尔值。

内部字段 为 true 时 为 false 时及注意事项
is_baby 检测实体是否为幼年变种。 检测是否为成年变种。若该实体没有幼年与成年变种,则无论如何都通过。
is_on_fire 检测实体是否已着火。 检测实体是否未着火。如果实体仅受到火方块伤害且持续时间尚不足一秒,则不通过。
is_sneaking 检测实体是否正在潜行。 检测实体是否未在潜行。
is_sprinting 检测实体是否正在疾跑。 检测实体是否未在疾跑。由于客户端和服务端不同步的漏洞,玩家可能在客户端疾跑而服务端认为其已经停止,导致此标志错误地为 false。
is_swimming 检测实体是否正在游泳。 检测实体是否未在游泳。
is_on_ground 检测实体是否处于地面上。 检测实体是否未处于地面上。传送实体后,即使将其传送到空中,也会有一个游戏刻被记录为处于地面上。
is_flying 检测实体是否正在使用鞘翅滑翔,或在创造模式下飞行。 检测实体是否未处于上述任一状态。
is_fall_flying 检测实体是否正在使用鞘翅滑翔。 检测实体是否未在使用鞘翅滑翔。

minecraft:location

minecraft:location:对象(compound)。检测此实体所在位置的属性,内部结构使用位置信息谓词。

minecraft:nbt

minecraft:nbt:字符串或对象(compound)。检测此实体的 NBT 数据是否部分匹配。由于这是最慢的检查,它总是该谓词最后执行的一项检查。

可以直接指定一个 NBT 复合标签对象,也可以指定包含该 NBT 复合标签的 SNBT 表示的字符串;后一种写法必须将外层花括号 { } 包含在字符串中。若 SNBT 含有引号 " ",必须格外留意:每个引号前都要加反斜杠进行转义,即 \"。

在 JSON 文件中使用对象而非字符串写法时,任意数值的数据类型会被隐式检测为能够容纳该数值的最小数据类型。这会导致任何其他类型均检测失败;若需要明确指定数据类型,必须改用字符串写法。

minecraft:passenger

minecraft:passenger:对象(compound)。检测直接骑乘此实体的实体。至少一名乘客必须通过此条件,谓词才通过。内部结构再次使用实体谓词。

minecraft:slots

minecraft:slots:对象(compound)。检测特定物品栏槽位中的物品。

<slot range>:对象(compound)。要检测的槽位或槽位范围。该范围内必须至少存在一个匹配条件的物品,谓词才通过。内部结构使用物品堆叠谓词。

minecraft:stepping_on

minecraft:stepping_on:对象(compound)。使用位置信息谓词检测实体站立其上的方块属性。玩家从方块边缘探身潜行时,这个方块可能并不直接位于玩家脚下。

minecraft:movement_affected_by

minecraft:movement_affected_by:对象(compound)。使用位置信息谓词检测实体站立方块下方 0.5 格处方块的属性。

minecraft:team

minecraft:team:字符串。此实体的队伍与该字符串匹配时通过。

minecraft:targeted_entity

minecraft:targeted_entity:对象(compound)。检测此生物的 AI 正在将其作为攻击目标的实体的属性。内部结构使用实体谓词。

minecraft:vehicle

minecraft:vehicle:对象(compound)。检测此实体正在骑乘的载具实体的属性。内部结构使用实体谓词。

minecraft:movement

minecraft:movement:对象(compound)。检测实体的运动。下列所有内部字段均可使用含双精度浮点数 min、max 的对象来检测范围,包含边界。

内部字段 类型 说明
x double 或 compound 检测 X 轴方向速度,单位为方块/秒。
y double 或 compound 检测 Y 轴方向速度,单位为方块/秒。
z double 或 compound 检测 Z 轴方向速度,单位为方块/秒。
speed double 或 compound 检测总运动速度,单位为方块/秒。
horizontal_speed double 或 compound 检测水平运动速度,单位为方块/秒;测试 X 与 Z 方向速度合成后的大小。
vertical_speed double 或 compound 检测垂直运动速度,单位为方块/秒;测试 y 方向速度的绝对值。
fall_distance double 或 compound 检测实体的下落距离,单位为方块。

minecraft:periodic_tick

minecraft:periodic_tick:整数(int)。检测实体的存活时间是否能被给定的正整数整除。如果实体已载入但未进行模拟,该检查可能会一直卡在每个游戏刻都通过或都失败的状态,直到实体再次足够接近玩家。因此不应将此字段用于重要的延迟控制。

minecraft:predicates

minecraft:predicates:对象(compound)。匹配数据组件谓词。例如可检查实体是否具有任意自定义名称、潜影贝是否具有任意颜色,或对区域效果云的药水内容进行部分匹配。具体格式见数据组件谓词。

minecraft:type_specific/fishing_hook

minecraft:type_specific/fishing_hook:对象(compound)。检测浮漂实体特有的属性;实体不是浮漂时失败。

in_open_water:布尔值。浮漂是否位于开阔水域。

minecraft:type_specific/lightning

minecraft:type_specific/lightning:对象(compound)。检测闪电束实体特有的属性;实体不是闪电束时失败。

内部字段 类型 说明
blocks_set_on_fire 整数(int)或对象(compound) 检测此闪电束点燃的方块数量。可使用含整数 min、max 的对象检测范围,包含边界。
entity_struck 对象(compound) 检测被此闪电束击中的实体的属性。至少一个被击中的实体匹配所给条件时通过;内部结构使用实体谓词。

minecraft:type_specific/player

minecraft:type_specific/player:对象(compound)。检测玩家特有的属性;实体不是玩家时失败。

looking_at

looking_at:对象(compound)。检测此玩家正在观察的实体的属性,要求该实体可见且位于 100 方块半径内。可见性由玩家眼睛与目标实体眼睛之间的连线判定,而不是玩家正看向的方向。内部结构使用实体谓词。

advancements

advancements:对象(compound)。检测玩家的进度。

内部字段 类型 说明
<advancement id> 布尔值 检测进度是否已获得。键为进度 ID;值为 true 时检测已获得,false 时检测未获得。
<advancement id> 对象(compound) 检测某项进度的指定准则是否被标记为完成。
<advancement id>.<criterion id> 布尔值 键为该进度的一项准则;值为 true 时检测已完成,为 false 时检测未完成。

gamemode

gamemode:列表。检测此玩家的游戏模式;匹配列表中的任一值即可。有效值为 survival、creative、adventure、spectator。

level

level:整数(int)或对象(compound)。检测此玩家的经验等级。可使用含整数 min、max 的对象检测范围,包含边界。

recipes

recipes:对象(compound)。检测此玩家是否已知某些配方。

<recipe id>:布尔值。键为配方 ID;为 true 时检测已知,为 false 时检测未知。

stats

stats:列表。检测此玩家的统计信息。列表中每个元素为表示一项统计的对象(compound),内部字段如下。

内部字段 类型 说明
type 字符串 统计类型。有效值:minecraft:custom、minecraft:crafted、minecraft:used、minecraft:broken、minecraft:mined、minecraft:killed、minecraft:picked_up、minecraft:dropped、minecraft:killed_by。
stat 字符串 要检测的统计 ID。
value 整数(int)或对象(compound) 检测统计值。可使用含整数 min、max 的对象检测范围,包含边界。

input

input:对象(compound)。检测此玩家的输入。下列内部字段均为布尔值。

内部字段 说明
forward 检测玩家是否正在输入“向前移动”。
backward 检测玩家是否正在输入“向后移动”。
left 检测玩家是否正在输入“向左平移”。
right 检测玩家是否正在输入“向右平移”。
jump 检测玩家是否正在输入“跳跃”。
sneak 检测玩家是否正在输入“潜行”。
sprint 检测玩家是否正在输入“疾跑”。

food

food:对象(compound)。检测玩家的饥饿值与饱和度。

内部字段 类型 说明
level 整数(int)或对象(compound) 检测玩家的饥饿值。可使用含整数 min、max 的对象检测范围,包含边界。
saturation 浮点数(float)或对象(compound) 检测玩家的饱和度。可使用含浮点数 min、max 的对象检测范围,包含边界。

minecraft:type_specific/raider

minecraft:type_specific/raider:对象(compound)。检测袭击者特有的属性;实体不是袭击者时失败。

is_captain:布尔值。检测此袭击者是否为队长。

has_raid:布尔值。检测此袭击者是否属于一场袭击。

minecraft:type_specific/sheep

minecraft:type_specific/sheep:对象(compound)。检测绵羊特有的属性;实体不是绵羊时失败。

sheared:布尔值。检测绵羊是否已被剪去羊毛(true),或仍具有羊毛(false)。

minecraft:type_specific/cube_mob

minecraft:type_specific/cube_mob:对象(compound)。检测史莱姆、岩浆怪和硫磺史莱姆实体特有的属性;实体并非这三者之一时失败。

size:整数(int)或对象(compound)。检测史莱姆、岩浆怪或硫磺史莱姆的大小,最小尺寸从 1 开始,始终比 Size NBT 标签值大 1。可使用含整数 min、max 的对象检测范围,包含边界。


中文翻译/改编自 Minecraft Wiki 原条目,原文作者可由页面历史查看。术语参考:中文 Minecraft Wiki:准则谓词、实体谓词。译文按上列英文源修订逐项覆盖,未以中文页较新结构替换源字段。

本文遵循 CC BY-NC-SA 3.0(署名、非商业性使用、相同方式共享)。