运行1个函数或者数据包内1个标签的所有函数。
语法[]
- Java版
function <name> [<arguments>|with (block <sourcePos>|entity <source>|storage <source>) [<path>]]
- 基岩版
function <name: filepath>
参数[]
JE:<name>
:function
BE:name: filepath
:CommandFilePath
- 指定要执行的函数或函数标签。
- Java版:
- 格式是
namespace:path/to/function/file
或#namespace:path/to/function/tag
。- 没有
#
前缀的namespace:path/to/function/file
格式会运行[data_pack]/data/namespace/functions/path/to/function/file.mcfunction
处的函数。 - 有
#
前缀的#namespace:path/to/function/tag
格式会运行所有[data_pack]/data/namespace/tags/functions/path/to/function/tag.json
标签下的函数。
- 没有
- 格式是
- 基岩版:
- 格式是
path/to/function/file
。- 运行
[behavior_pack]/functions/path/to/function/file.mcfunction
处的函数。
- 运行
- 格式是
JE:<arguments>
- 包含所有变量和对应值的复合数据。必须为SNBT格式的NBT标签。
- 格式:
{变量1名称: 值, 变量2名称: 值, 变量3名称: 值, ...}
- 是否使用引号括起变量名称和值不影响解析,但若值为含空格的字串则一定要有引号。
- 由变量引起的语法错误将导致整个函数调用被跳过。
- 多余的变量会被忽略。
- 格式:
JE:<source>
:entity(仅entity <source>
模式)
- 必须为玩家名、目标选择器或UUID。且目标选择器只允许1个实体。
JE:<source>
:resource_location(仅storage <source>
模式)
- 指定NBT标签的存储。
- 必须为命名空间ID。其将在命令执行时被分解为未注册内容或者是客户端内容。
- 指定数据路径(可选)。
- 必须为NBT路径。
效果[]
命令 | 触发条件 | Java版 | 基岩版 |
---|---|---|---|
任意 | 参数不正确 | 无法解析 | 无法解析 |
指定的函数或函数标签不存在 | 执行失败 | 执行失败 | |
执行成功时 | 以执行者的身份与位置逐条执行函数内的命令 |
输出[]
命令 | 版本 | 条件 | 成功次数 | /execute store success ... | /execute store result ... |
---|---|---|---|---|---|
任意 | Java版 | 执行失败 | 0 | 0 | 0 |
执行成功 | 执行的命令总数+1 (加上该命令自己) | 1 | 运行的命令数量(无论成功与否),包括被引用的函数。 | ||
基岩版 | 执行失败 | 0 | N/A | N/A | |
执行成功 | 1 | N/A | N/A |
在Java版中,由于存在漏洞,函数的反复调用会使输出结果错误[1][2]
示例[]
- Java版中:
- 运行
data/custom/functions/example/test.mcfunction
处的函数:/function custom:example/test
- 运行所有
data/custom/tags/functions/example/test.json
标签下的函数:/function #custom:example/test
- 如果半径2格内存在绵羊,则运行函数:
/execute if entity @e[type=sheep,distance=..2] run function custom:example/test
- 执行者不是玩家时,运行函数:
/execute unless entity @s[type=player] run function custom:example/test
- 运行
历史[]
Java版 | |||||
---|---|---|---|---|---|
1.12 | pre1 | 加入了/function 。 | |||
1.13 | 17w49b | /function 现在接受数据包的标签作为其参数。
| |||
因/execute [if/unless] 的存在而移除了[if/unless] 。 | |||||
1.20.2 | 23w31a | /function 现在允许传递NBT作为参数。 | |||
基岩版 | |||||
1.8.0 | 1.8.0.8 | 加入了/function 。 |
参考[]
语言