我的世界advancement指令

此特性为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

操作玩家的指定进度及其全部上游和下游进度。
进度的遍历顺序是untilfrom的结合,首先进行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
已有 0 条评论