/advancement 命令

/advancement 命令

来源:Commands/advancement,英文修订 ID:3816103。

此命令仅适用于 Java 版,所需权限等级为 2。

向一名或多名玩家授予或收回一个进度,或进度中的一个准则。

语法

advancement (grant|revoke) <targets> everything

添加或移除所有已加载的进度。

advancement (grant|revoke) <targets> only <advancement> [<criterion>]

添加或移除单个进度或准则。

advancement (grant|revoke) <targets> from <advancement>

添加或移除指定进度及其所有子进度。可理解为从该进度到末端的全部进度。处理顺序为 specified advancement > child > child's child > ...;遇到分支时,先遍历该分支的所有子进度,再继续。

advancement (grant|revoke) <targets> through <advancement>

添加或移除指定进度、它的所有父进度和所有子进度。可理解为沿指定进度向前、向后贯穿整条分支。顺序等同于先执行 until 再执行 from:parent > parent's parent > ... > root > specified advancement > child > child's child > ...。

advancement (grant|revoke) <targets> until <advancement>

添加或移除指定进度及其直至根进度的所有父进度。可理解为从起点直到该进度的全部进度。处理顺序为 parent > parent's parent > ... > root > specified advancement。

参数

grant|revoke:指定授予还是收回稍后指定的进度。

<targets>: entity:指定一名或多名玩家。必须为玩家名称、目标选择器或 UUID;目标选择器必须为玩家类型。

<advancement>: resource_location:指定有效的进度资源位置。此参数采用可表示未注册内容的资源位置语法。

<criterion>: string:指定要操作的有效准则。省略时操作整个进度;给出时只操作该准则。它是贪婪字符串,会将命令余下的全部输入作为参数。

结果

情况 结果
命令不完整,或任一参数指定错误 无法解析
<targets> 未解析为一名或多名在线玩家 失败
没有向任何玩家添加进度或准则,也没有从任何玩家收回进度或准则 失败
only <advancement> <criterion> 中的准则对指定进度无效 失败
其他情况 成功

输出

失败时,成功次数、/execute store success 与 /execute store result 均为 0。成功时,成功次数和 success 值均为 1;result 值为向每名玩家添加或收回的进度(或准则)总数。

示例

授予当前玩家“钻石护体”进度:

/advancement grant @s only minecraft:story/shiny_gear

向所有玩家授予全部进度:

/advancement grant @a everything

收回当前玩家的“钻石护体”进度:

/advancement revoke @s only minecraft:story/shiny_gear

收回所有玩家的全部进度:

/advancement revoke @a everything

另见


本文为 Minecraft Wiki 对应英文条目的中文翻译与改编,已按要求省略变更历史。原作者与贡献者见来源页及其历史;除另有说明外,按 CC BY-NC-SA 3.0 非商业、署名、相同方式共享。