/schedule

/schedule

原文:Commands/schedule;源修订:3743439。

安排函数的执行。Java 版所需权限等级为 2;基岩版为 1,且需要开启作弊。

用法

Java 版中,本命令延迟执行一个函数或某个函数标签中的所有函数。指定时间经过后,由服务器执行函数。

基岩版中,本命令将函数安排在某一区域完全加载后,或经过一定时间后执行。

Java 版中,同一个函数或函数标签不能在同一游戏刻执行两个计划。replace 模式会直接覆盖同一函数或函数标签尚未执行的计划。例如,函数原定 30 秒后执行,在它执行之前,可使用 replace 设置新计划来修改执行时间。

即使通过 execute as ... 调用本命令,计划中的函数仍始终以服务器身份在世界出生点执行,参见 /execute。

语法

Java 版

添加计划:

schedule function <function> <time> [append|replace]

移除计划:

schedule clear <function>

基岩版

添加在区域加载后执行的计划:

schedule on_area_loaded add <from: x y z> <to: x y z> <function: filepath>
schedule on_area_loaded add circle <center: x y z> <radius: int> <function: filepath>
schedule on_area_loaded add tickingarea <name: string> <function: filepath>

延迟计划:

schedule delay add <function> <delay (ticks)> [append|replace]
schedule delay clear <function>

移除计划:

schedule clear <function: filepath>
schedule on_area_loaded clear function <function: filepath>
schedule on_area_loaded clear tickingarea <name: string> [function: filepath]

参数

  • function(Java 版,function 类型)、function: filepath(基岩版,CommandFilePath 类型):要执行的函数。Java 版使用函数的命名空间 ID,或以 # 开头的函数标签;基岩版使用行为包 functions 目录中的函数文件路径,不包含 .mcfunction 扩展名。
  • time(Java 版,time 类型):延迟时间。须为数字,可附带 d(天,24000 游戏刻)、s(秒,20 游戏刻)或 t(游戏刻)单位;省略单位时为游戏刻。换算后不小于 0。注意,1t 不一定表示延迟整整一刻,而是安排到下一个执行计划函数的阶段。
  • function(Java 版 /schedule clear ...,贪婪字符串):要清除的函数。应为命名空间 ID 或函数标签,minecraft: 不可省略;可包含空格,读取参数后的整个剩余输入。
  • append|replace(Java 版):replace 为默认值,直接替换当前函数的计划时间;append 允许同一函数在不同时间存在多个计划。
  • from: x y z 和 to: x y z(基岩版,CommandPosition):矩形加载区域两个对角的坐标。须为三个由空格分隔的坐标,可用波浪号或插入符号表示相对坐标。x、z 小于 -30000000 或大于 30000000 时,分别按 -30000000 或 30000000 处理。
  • center: x y z(基岩版,CommandPosition):圆形加载区域中心坐标。坐标格式及 x、z 的限制与上述相同。
  • radius: int(基岩版):圆形加载区域的半径,以从中心至圆边缘的区块数量计。须为 32 位整数,应介于 0 至 2147483647(含端点)。
  • name: string(基岩版,basic_string):常加载区域名称;该区域添加后执行函数。须为字符串,可使用双引号包含空格。

1t 的具体行为(Java 版):

  • 在 #minecraft:tick 函数中执行 schedule function <function> 1t,会安排在同一游戏刻稍后的计划函数阶段执行,该阶段紧接 #minecraft:tick 函数阶段。
  • 在计划函数阶段执行同一命令,会安排在下一游戏刻的计划函数阶段执行。

因此,在 #minecraft:tick 函数中指定 1t 会在同一刻运行,在计划函数中指定 1t 则会在下一刻运行。

结果

条件 Java 版 基岩版
命令不完整或任一参数指定不正确 无法解析 无法解析
指定函数或函数标签不存在 失败 失败
/schedule function ... 的 time 为 0 失败 不适用
/schedule clear ... 找不到指定函数的计划 失败 失败
矩形或圆形 on_area_loaded add 指定超过 2147483647 个区块 不适用 失败
on_area_loaded add circle 的 radius: int 小于 0 不适用 失败
其他情况 成功 成功

输出

Java 版失败时,成功次数、成功值、结果值均为 0。成功时成功次数和成功值均为 1;schedule function 的结果值为计划执行时游戏刻数对 2147483647 取模,schedule clear 的结果值为清除的计划数量。基岩版失败时成功次数为 0,成功时为 1。

外部链接

Microsoft Learn:/schedule 命令(2024 年 10 月 9 日)。

来源为 Minecraft Wiki;本中文翻译/改编按 CC BY-NC-SA 3.0 共享。