執行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 。 |
參考[]
語言