cerca de 90% da tradução está concluída
O comando /data
permite que o usuário obtenha, mescle, modifique e remova dados NBT de Bloco-entidade, entidades, ou Comando armazenado em NBT.
Sintaxe[]
Existem quatro instruções para /data
(get
, merge
, modify
, remove
), e os destinos/fontes referenciados por cada comando de instrução podem ser block <targetPos>
, entity <target>
, ou storage <target>
.
/data ...
... get
... (block <targetPos>|entity <target>|storage <target>) [<path>] [<scale>]
- Leia todos os dados NBT ou a subseção dos dados NBT da posição ou entidade de bloco de destino para o executor com realce de sintaxe, escalado por <escala> se especificado.
... merge
... (block <targetPos>|entity <target>|storage <target>) <nbt>
- Mescle os dados NBT da posição ou entidade do bloco de destino com os dados
<nbt>
especificados.
- Mescle os dados NBT da posição ou entidade do bloco de destino com os dados
... modify (block <targetPos>|entity <target>|storage <target>) <targetPath> ...
... append from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... append value <value>
- Append the source data or direct value data onto the end of the pointed-to list.
... insert <index> from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... insert <index> value <value>
- Insira os dados de origem ou os dados de valor direto na lista apontada como elemento
<index>
e, em seguida, desloque os elementos superiores uma posição para cima.
- Insira os dados de origem ou os dados de valor direto na lista apontada como elemento
... merge from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... merge value <value>
- Merge the source data or direct value data into the pointed-to object.
... prepend from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... prepend value <value>
- Anexe os dados de origem ou dados de valor direto no início da lista apontada.
... set from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
... set value <value>
- Defina a tag especificada por
<targetPath>
para os dados de origem ou dados de valor direto.
- Defina a tag especificada por
... remove
... (block <targetPos>|entity <target>|storage <target>) <path>
- Remove os dados NBT em
<path>
da posição ou entidade do bloco de destino. Os dados NBT do jogador não podem ser removidos.
- Remove os dados NBT em
Sintaxe exibida de várias maneiras
Árvore simplificada: /data
- onde os argumentos substituídos são:
<TARGET>
=(block <targetPos> | entity <target> | storage <target>)
<MODIFICATION>
=(append|insert <index>|merge|prepend|set)
<SOURCE>
=(block <sourcePos> | entity <source> | storage <source>)
Árvore esmagada: /data
… get (block <targetPos>|entity <target>|storage <target>) [<path>] [<scale>]
… merge (block <targetPos>|entity <target>|storage <target>) <nbt>
… modify (block <targetPos>|entity <target>|storage <target>) <targetPath> (append|insert <index>|merge|prepend|set)
… from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
… value <value>
… remove (block <targetPos>|entity <target>|storage <target>) <path>
Maximizado: data get block <targetPos> [<path>] [<scale>]
data get entity <target> [<path>] [<scale>]
data get storage <target> [<path>] [<scale>]
data merge block <targetPos> <nbt>
data merge entity <target> <nbt>
data merge storage <target> <nbt>
data modify block <targetPos> <targetPath> append from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> append from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> append from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> append value <nbt>
data modify block <targetPos> <targetPath> insert index> from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> insert <index> from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> insert <index> from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> insert <index> value <nbt>
data modify block <targetPos> <targetPath> merge from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> merge from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> merge from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> merge value <nbt>
data modify block <targetPos> <targetPath> prepend from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> prepend from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> prepend from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> prepend value <nbt>
data modify block <targetPos> <targetPath> set from block <sourcePos> <sourcePath>
data modify block <targetPos> <targetPath> set from entity <source> <sourcePath>
data modify block <targetPos> <targetPath> set from storage <source> <sourcePath>
data modify block <targetPos> <targetPath> set value <nbt>
data modify entity <target> <targetPath> append from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> append from entity <source> <sourcePath>
data modify entity <target> <targetPath> append from storage <source> <sourcePath>
data modify entity <target> <targetPath> append value <value>
data modify entity <target> <targetPath> insert <index> from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> insert <index> from entity <source> <sourcePath>
data modify entity <target> <targetPath> insert <index> from storage <source> <sourcePath>
data modify entity <target> <targetPath> insert <index> value <value>
data modify entity <target> <targetPath> merge from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> merge from entity <source> <sourcePath>
data modify entity <target> <targetPath> merge from storage <source> <sourcePath>
data modify entity <target> <targetPath> merge value <value>
data modify entity <target> <targetPath> prepend from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> prepend from entity <source> <sourcePath>
data modify entity <target> <targetPath> prepend from storage <source> <sourcePath>
data modify entity <target> <targetPath> prepend value <value>
data modify entity <target> <targetPath> set from block <sourcePos> <sourcePath>
data modify entity <target> <targetPath> set from entity <source> <sourcePath>
data modify entity <target> <targetPath> set from storage <source> <sourcePath>
data modify entity <target> <targetPath> set value <value>
data modify storage <target> <targetPath> append from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> append from entity <source> <sourcePath>
data modify storage <target> <targetPath> append from storage <source> <sourcePath>
data modify storage <target> <targetPath> append value <value>
data modify storage <target> <targetPath> insert <index> from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> insert <index> from entity <source> <sourcePath>
data modify storage <target> <targetPath> insert <index> from storage <source> <sourcePath>
data modify storage <target> <targetPath> insert <index> value <value>
data modify storage <target> <targetPath> merge from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> merge from entity <source> <sourcePath>
data modify storage <target> <targetPath> merge from storage <source> <sourcePath>
data modify storage <target> <targetPath> merge value <value>
data modify storage <target> <targetPath> prepend from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> prepend from entity <source> <sourcePath>
data modify storage <target> <targetPath> prepend from storage <source> <sourcePath>
data modify storage <target> <targetPath> prepend value <value>
data modify storage <target> <targetPath> set from block <sourcePos> <sourcePath>
data modify storage <target> <targetPath> set from entity <source> <sourcePath>
data modify storage <target> <targetPath> set from storage <source> <sourcePath>
data modify storage <target> <targetPath> set value <value>
data remove block <targetPos> <path>
data remove entity <target> <path>
data remove storage <target> <path>
Argumentos[]
<targetPos>
: block_pos
- A posição do alvo Bloco-entidade cujo NBT deve ser operado.
- It 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.
<target>
: entity (no modo entity <target>
)
- Especifica uma entidade cujo NBT será operado.
- Deve ser um nome de jogador, seletores de destino ou o UUID. And o seletor de destino deve ser de tipo único.
<target>
: resource_location (no modo storage <target>
)
- Especifica um armazenamento a ser operado.
- Deve ser um ID de espaço de nome.
<path>
: nbt_path
- Especifica o NBT a ser recuperado ou removido.
- Must be an NBT path.
<scale>
: double
- Escalar para o valor de retorno do comando.
- Deve ser um no número de ponto de flutuação de precisão dupla.
<nbt>
: nbt_compound_tag
- Especifica uma tag composta a ser mesclada em algum lugar.
- Must be a compound NBT in SNBT format.
<targetPath>
: nbt_path
- Especifica o NBT de destino a ser modificado.
- Must be an NBT path.
<index>
: integer
- Especifica o índice de um item em uma lista.
- Deve ser um número inteiro de 32 bits. And it must be between -2147483648 and 2147483647 (inclusive).
<sourcePos>
: block_pos
- A posição do alvo Bloco-entidade cujo NBT deve ser usado.
- It 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.
<source>
: entity (no modo entity <source>
)
- Especifica uma entidade cujo NBT deve ser usado por
modify
. - Deve ser um nome de jogador, seletores de destino ou o UUID. And o seletor de destino deve ser de tipo único.
<source>
: resource_location (no modo storage <source>
)
- Especifica um armazenamento a ser usado por
modify
. - Deve ser um ID de espaço de nome.
<sourcePath>
: nbt_path
- Especifica a fonte NBT a ser usada por
modify
. - Must be an NBT path.
<value>
: nbt_tag
- Valor usado na modificação do NBT alvo. Deve corresponder ao seu tipo de dados.
- Must be an NBT tag of any type in SNBT format.
Resultado[]
Comando | Gatilho | Edição Java |
---|---|---|
qualquer | os argumentos não foram especificados corretamente | não analisável |
<targetPos> esta descarregado ou fora do mundo | falha | |
o bloco em <targetPos> não é um bloco-entidade | ||
<target> (em entity <target> ) falha em resolver para uma entidade (o jogador nomeado deve estar online) | ||
/data get ... | mais de uma tag foi coletada | |
/data get ... <path> | <path> não existe | |
/data get ... <path> <scale> | a tag obtida não é uma tag numérica | |
/data merge ... | nada é alterado | |
tenta editar os dados do jogador | ||
/data remove ... | <path> is the root compound tag | |
/data modify ... from block ... | <sourcePos> esta descarregado ou fora do mundo | |
o bloco em <sourcePos> não é um bloco-entidade | ||
/data modify ... from entity ... | <sourceEntity> falha em resolver para uma entidade (o jogador nomeado deve estar online) | |
/data modify ... from ... <sourcePath> | <sourcePath> não existe | |
/data modify ... append ... | a tag de destino não é uma lista ou array | |
os dados de origem não são de um tipo de item apropriado para a lista | ||
/data modify ... insert <index> ... | o indice é inválido | |
/data modify ... merge ... | o caminho de destino não especifica uma tag composta | |
os dados de origem não são uma tag composta | ||
qualquer | Com sucesso | Coletar, unificar, modificar, e remover dados NBT. |
Saída[]
Comando | Edição | Situação | Contagem de sucesso | /execute store succeess ... | /execute store result ... |
---|---|---|---|---|---|
qualquer | Edição Java | Na falha | 0 | 0 | 0 |
/data get ... | No sucesso | 1 | 1 | 1 | |
/data get ... <path> | uma tag numérica é obtida | 1 | 1 | o valor obtido após o arredondamento para baixo[1] | |
uma lista ou tag array é obtida | 1 | 1 | O número de elementos nesta lista ou array | ||
uma tag de string é obtida | 1 | 1 | O comprimento da string | ||
uma tag composta é obtida | 1 | 1 | O número de tags que são filhos diretos desse composto | ||
/data get ... <path> <scale> | No sucesso | 1 | 1 | o valor obtido multiplicado por <escala> , então arredondado para baixo[2] | |
/data merge ... | No sucesso | 1 | 1 | 1 | |
/data remove ... | No sucesso | 1 | 1 | 1 | |
/data modify ... append ... | No sucesso | 1 | 1 | o número de listas ou arrays aos quais novos elementos são adicionados | |
/data modify ... set ... | No sucesso | 1 | 1 | o número de tags de destino que foram modificados com sucesso | |
/data modify ... merge ... | No sucesso | 1 | 1 | o número de tags compostas de destino que foram modificadas com sucesso |
Exemplos[]
- Para obter o nível de saturação do jogador atual:
/data get entity @s foodSaturationLevel
- Para tornar o item mais próximo dentro de 10 blocos incapaz de ser pego pelos jogadores:
/data modify entity @e[type=item,distance=..10,limit=1,sort=nearest] PickupDelay set value -1
- Para obter a posição Y de um item aleatório:
/data get entity @e[type=item,limit=1,sort=random] Pos[1]
- Para obter o ID do item no primeiro slot da hotbar do jogador mais próximo:
/data get entity @p Inventory[{Slot:0b}].id
- Para definir o atributo de armadura do golfinho mais próximo das coordenadas (0, 64, 0) para 20:
/data modify entity @e[x=0,y=64,z=0,type=dolphin,limit=1] Attributes[{Name:"minecraft:generic.armor"}].Base set value 20
- Para transformar o primeiro item em um baú localizado nas coordenadas (1, 64, 1) em um bloco de diamante, mantendo todos os dados NBT:
/data modify block 1 64 1 Items[0].id set value "minecraft:diamond_block"
- Para fazer com que o zumbi mais próximo tenha 80% de chance de derrubar itens em sua mão secundária quando morrer, e nunca deixar cair itens na mão principal:
/data merge entity @e[type=zombie,limit=1,sort=nearest] {HandDropChances: [0f, 0.8f]}
- Fazer com que o zumbi mais próximo tenha 80% de chance de derrubar itens em sua mão secundária ao morrer, sem afetar a chance da mão principal:
/data modify entity @e[type=zombie,limit=1,sort=nearest] HandDropChances[1] set value 0.8f
Armazenamento[]
O armazenamento de comando de dados NBT é uma maneira eficiente para comandos acessarem ou salvarem dados NBT sem criar uma sobrecarga e Bloco-entidade ou entidades lendo ou gravando nos dados NBT.
Cada armazenamento de comando possui um valor-chave de uso geral, identificado por uma localização do recurso para evitar conflitos não intencionais.
/data get
e /data modify
pode ler a partir do armazenamento, enquanto /data merge
, /data modify
, /data remove
, e /execute store
podem escrever para o armazenamento.
O armazenamento de comandos também pode ser acessado com um texto JSON.
Histórico[]
Edição Java | |||||
---|---|---|---|---|---|
1.13 | 17w45b | Adicionado /data . | |||
17w47a | Comandos /blockdata e /entitydata foram removidos e seus recursos foram unificados em /data . | ||||
18w03a | Usar /data get (block|entity|storage) com um caminho agora funciona em valores não numéricos. | ||||
1.14 | 18w43a | Adicionado /data modify (block|entity|storage) . | |||
1.15 | 19w38a | Adicionado storage <resource location> como fonte ou destino. |