/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 共享。