Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
注册
Advertisement
function
需要的权限等级

Java版:2
基岩版:1

限制条件

启用作弊[仅基岩版]

运行1个函数或者数据包内1个标签的所有函数。[仅Java版]

运行行为包内的1个函数[仅基岩版]

语法[]

  • Java版
function <name> [<arguments>|with (block <sourcePos>|entity <source>|storage <source>) [<path>]]
  • 基岩版
function <name: filepath>

参数[]

JE<name>function
BEname: filepathCommandFilePath

指定要执行的函数或函数标签。
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<sourcePos>block_pos

必须为方块坐标,包括<X>、<Y>和<Z>,每个值都必须是整数或者含有波浪号与脱字号标记

JE<source>entity(仅entity <source>模式)

必须为玩家名、目标选择器或UUID。且目标选择器只允许1个实体。

JE<source>resource_location(仅storage <source>模式)

指定NBT标签的存储。
必须为命名空间ID。其将在命令执行时被分解为未注册内容或者是客户端内容。

JE<path>nbt_path

指定数据路径(可选)。
必须为NBT路径

效果[]

命令触发条件Java版基岩版
任意参数不正确 无法解析 无法解析
指定的函数或函数标签不存在 执行失败 执行失败
执行成功时以执行者的身份与位置逐条执行函数内的命令

输出[]

命令版本条件成功次数/execute store success .../execute store result ...
任意Java版执行失败000
执行成功执行的命令总数+1 (加上该命令自己)1运行的命令数量(无论成功与否),包括被引用的函数。
基岩版执行失败0N/AN/A
执行成功1N/AN/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.12pre1加入了/function
1.1317w49b/function现在接受数据包的标签作为其参数。
/execute [if/unless]的存在而移除了[if/unless]
1.20.223w31a/function现在允许传递NBT作为参数。
基岩版
1.8.01.8.0.8加入了/function

参考[]

语言

Advertisement