/function
/function| Nível de permissão exigido |
|
|---|---|
| Restrições |
{
"title": "<code>/function</code>",
"rows": [
{
"field": "\n* 2 <sup class=\" nowrap Inline-Template \" title=\"\">[<i><span title=\"Esta frase só se aplica a Edição Java\">(link to Edição Java article, displayed as EJ) apenas</span></i>]</sup>\n* 1 <sup class=\" nowrap Inline-Template \" title=\"\">[<i><span title=\"Esta frase só se aplica a Edição Bedrock\">(link to Edição Bedrock article, displayed as EB) apenas</span></i>]</sup>",
"label": "(link to Nível de permissão article, displayed as Nível de permissão<br />exigido)"
},
{
"field": "Apenas com (link to Opções article, displayed as cheat) <sup class=\" nowrap Inline-Template \" title=\"\">[<i><span title=\"Esta frase só se aplica a Edição Bedrock\">(link to Edição Bedrock article, displayed as EB) apenas</span></i>]</sup>",
"label": "(link to Comandos#Restrições article, displayed as Restrições)"
}
],
"invimages": [],
"images": []
}
Executa comandos encontrados nos arquivos de funções correspondentes com o contexto de execução do comando (executor, posição de execução, ângulos, etc.) do próprio comando /function.
Uso
[editar | editar código-fonte]Na Edição Java, executar uma função ou todas as funções em uma marcação de um pacote de dados.
Na Edição Bedrock, executa uma função com um pacote de comportamento.
Na Edição Java, o comportamento do /return run function ... (ou /return run execute ... run function ...) é diferente com uma chamada direta para o comando /function. Se /return run function ... executar várias funções, a execução para após o primeiro /return em qualquer uma das funções. Se uma chamada direta para o /function ... executar várias funções, todas as funções serão executadas e os valores de retorno serão somados como o valor result do comando /function ....
Sintaxe
[editar | editar código-fonte]- Edição Java
function <name>- Executa uma função ou funções em uma marcação.
function <name> <arguments>function <name> with (block <sourcePos>|entity <source>|storage <source>) [<path>]- Executa uma função ou funções em uma marcação, com argumentos para macros.
- Edição Bedrock
function <name: filepath>- Executa uma função.
Argumentos
[editar | editar código-fonte]EJ: <name>: function
EB: name: filepath: CommandFilePath
- Especifica a(s) função(ões) a serem executadas.
- Na Edição Java, deve ser uma localização de recurso, que se refere a uma única função ou prefixada com um
#, que se refere a uma função de marcação. Na Edição Bedrock, deve estar no formatopath/to/function/file, que se refere a uma função localizada em[behavior_pack]/functions/path/to/function/file.mcfunction.
EJ: <arguments>: nbt_compound_tag
- Especifica argumentos para as funções de macro em uma marcação NBT composta.
- Deve ser um composto NBT no formato SNBT.
- A posição da entidade de bloco alvo cujo NBT deve ser usado.
- Isso deve ser um bloco de posição composto de <x>, <y> e <z>, cada um deles deve ser um número inteiro ou notação de til e circunflexo.
EJ: <source>: entity (in entity <target> mode)
- Especifica uma entidade cujo NBT deve ser usado.
- Deve ser um nome de jogador, seletores de destino ou o UUID.
EJ: <source>: resource_location (no modo storage<target>)
- Especifica um armazenamento cujo NBT deve ser usado.
- Deve ser uma localização de recurso.
- Especifica o caminho NBT. Deve ser um caminho de uma única tag composta.
- Deve ser um caminho NBT.
Resultado
[editar | editar código-fonte]
| Comando | Circunstância | Edição Java | Edição Bedrock |
|---|---|---|---|
| Qualquer | O comando está incompleto ou algum argumento não foi especificado corretamente. | Não analisável | Interrompido |
| A função ou marcação de função especificada não existe. | Falha | Falha | |
| Não há função na marcação do function. | N/A | ||
/function <name> | Existe alguma linha de macro na(s) função(ões). | Falha | |
/... with block ... | <sourcePos>está descarregado ou fora do mundo. | ||
O bloco em <sourcePos> não é uma entidade de bloco. | |||
/... with entity ... | <source> falha ao resolver para uma entidade (o jogador nomeado deve estar online). | ||
/... with ... <path> | Não há nenhuma marcação em <path>. | ||
Mais de uma marcação é selecionada por <path>. | |||
A marcação em <path> não é uma marcação composta. | |||
/... <arguments> | Com os argumentos fornecidos, qualquer linha de macro na(s) função(ões) se torna um comando não analisável. | ||
| Qualquer | Apenas uma função é especificada e nela não há nenhum comando /return sendo executado. | Vazio | |
Apenas uma função é especificada, e nela há um comando /return sendo executado e retornando uma falha. | Falha | ||
Várias funções são especificadas e, em todas elas, não há nenhum comando /return sendo executado. | Vazio | ||
| De outra forma | Bem-sucedido | ||
Saída
[editar | editar código-fonte]Na Edição Java, para /return run execute store ... run function ...:
| Comando | Edição | Situação | Contagem de sucesso | /execute store success ... | /execute store result ... |
|---|---|---|---|---|---|
| qualquer | Edição Java | Em caso de falha | N/A | 0 | 0 |
| Em caso do vazio | N/A | inalterado | inalterado | ||
| Em caso de sucesso | N/A | 1 | o valor de retorno da primeira função sem-vazio (A execução para após o primeiro /return em qualquer uma das funções especificadas) |
Na Edição Java, de outra forma:
| Comando | Edição | Situação | Contagem de sucesso | /execute store success ... | /execute store result ... |
|---|---|---|---|---|---|
| qualquer | Edição Java | Em caso de falha | 0 | 0 | 0 |
| Em caso do vazio | 0 | inalterado | inalterado | ||
| Em caso de sucesso | 1 | 1 | a soma dos valores retorna todas as funções não vazias |
Na Edição Bedrock:
| Comando | Edição | Situação | Contagem de sucesso |
|---|---|---|---|
| qualquer | Edição Bedrock | Em caso de falha | 0 |
| Em caso de sucesso | 1 |
Exemplos
[editar | editar código-fonte]- Na Edição Java:
- Para executar uma função localizada em
data/custom/functions/example/test.mcfunctionem um pacote de dados carregado:/function custom:example/test - Para executar todas as funções em uma função de marcação localizada em
data/custom/tags/functions/example/test.json:/function #custom:example/test - Para executar uma função se houver uma ovelha em um raio de 2 chuncks:
/execute if entity @e[type=sheep,distance=..2] run function custom:example/test - Para executar uma função, a menos que o executor seja um jogador:
/execute unless entity @s[type=player] run function custom:example/test - Para executar uma macro de função com argumentos a=42, b="example":
/function custom:example/test {a: 42, b: "example"} - Para executar uma macro de função com argumentos de armazenamento
custom:storage:/function custom:example/test with custom:storage
- Para executar uma função localizada em
Histórico
[editar | editar código-fonte]| Edição Java | |||||||
|---|---|---|---|---|---|---|---|
| 1.12 | pre1 | Adicionado /function. | |||||
| pre4 | Adicionados novos argumentos ao comando /function: [if|unless] [selector] | ||||||
| pre6 | Funções ignoradas (quando uma condicional falha) agora são consideradas falhas quando usadas em comandos. | ||||||
| 1.13 | 17w49b | /function agora aceita marcações como argumento.
| |||||
Removido argumentos [if/unless] em favor do /execute [if/unless]. | |||||||
| 1.20.2 | 23w31a | Adicionados argumentos de macro de função. | |||||
| 1.20.3 | 23w41a | O comando /function não retorna mais o número de comandos executados para acomodar melhor o novo comando /return. | |||||
| 23w44a | Se /function <function tag> executar várias funções em combinação com /return run, a execução será interrompida após o primeiro /return em qualquer uma das funções. | ||||||
Uma única chamada para o comando /function sempre retorna quando executado com /return run. Por exemplo, /return run execute [split context] run function <some function with conditional return> sempre retorna após processar o primeiro contexto. | |||||||
| 1.20.5 | 23w51a | Corrigido um bug em que /function executando uma função com /return fail tinha um valor success de 1.[1][2] | |||||
| Edição Bedrock | |||||||
| 1.8.0 | beta 1.8.0.8 | Adicionado /function. | |||||
Veja Também
[editar | editar código-fonte]/tag– Para executar a função em lote, a cada tique ou no recarregamento do servidor.