此特性为Java版独有。
advancement
需要的权限等级 | 2 |
---|---|
限制条件 | 无 |
给予或移除玩家的进度。
语法
advancement (grant|revoke) <targets> everything
advancement (grant|revoke) <targets> only <advancement> [<criterion>]
advancement (grant|revoke) <targets> (from|through|until) <advancement>
参数
grant|revoke
- 要执行的动作,授予(grant)或移除(revoke)指定的进度。
<targets>
:entity
- 指定一个或多个玩家。必须为玩家名或目标选择器。
- 不允许除了玩家以外的实体。
everything
- 操作玩家的全部已载入进度。
from
- 操作玩家的指定进度及其全部下游进度。
- 进度的遍历顺序是
-{}-指定进度 > 下游进度 > 下游进度的下游进度 > ……
,以DFS遍历(即优先列举节点的子节点,而后才列举节点的兄弟节点)。 - 由于具体的进度树取决于操作系统读取文件的方式,因此在不同操作系统上具体的遍历顺序不尽相同。
only
- 仅操作玩家的指定进度。
through
- 操作玩家的指定进度及其全部上游和下游进度。
- 进度的遍历顺序是
until
和from
的结合,首先进行until
,然后进行from
,即-{}-上游进度 > 上游进度的上游进度 > …… > 根进度 > 指定进度 > 下游进度 > 下游进度的下游进度 > ……
。
until
- 操作玩家的指定进度及其全部上游进度。
- 进度的遍历顺序是
-{}-上游进度 > 上游进度的上游进度 > …… > 根进度 > 指定进度
。
<advancement>
:resource_location
- 指定要给予、移除或检测的进度。必须是有效进度识别符。
<criterion>
:string
- 指定要操作的进度的条件。必须是有效进度条件识别符。
- 默认是所有进度。
- 若指定,命令只会遵循该完成条件,而不是全部进度。
效果
命令 | 触发条件 | Java版 |
---|---|---|
任意 | 参数不正确 | 无法解析 |
<targets> 未能解析出至少一个在线玩家 |
执行失败 | |
没有从任何玩家授予或移除进度或条件 | 执行出错 | |
... only <advancement> <criterion> |
指定的<criterion> 对<advancement> 不可用 |
|
任意 | 执行成功时 | 从玩家添加授予或移除进度或条件 |
输出
命令 | 版本 | 条件 | 成功次数 | /execute store success ... |
/execute store result ... |
---|---|---|---|---|---|
任意 | Java版 | 出错时 | 0 | 不改变 | 不改变 |
失败时 | 0 | 0 | 0 | ||
成功时 | 1 | 1 | 从每个玩家授予或移除的进度或条件总数 |
示例
- 授予自己“钻石护体”进度:
advancement grant @s only minecraft:story/shiny_gear
- 授予所有玩家所有进度:
advancement grant @a everything