Modificadores de itens são arquivos técnicos JSON que podem ser criados dentro de pacotes de dados e são usados para adicionar funções de saque em itens existentes usando o comando /item
.
Esta página descreve como os modificadores de itens são definidos e invocados. Ela também mostra a estrutura JSON de uma função de saque, a estrutura JSON primária dentro de um modificador de item.
Definição[]
Um modificador de item é uma função de item ou um array de funções de item para aplicar ao item. Eles são definidos usando o formato JSON.
Os modificadores de itens pertencem à seguinte pasta da estrutura de um pacote de dados, destacada abaixo:
- (data pack name)
- pack.mcmeta
- pack.png
- data
- (namespace)
- advancements
- (advancement).json
- functions
- (function).mcfunction
- item_modifiers
- (modifier).json
- loot_tables
- (loot table).json
- predicates
- (predicate).json
- Outras pastas
- advancements
- (namespace)
O elemento raiz de um modificador de item pode ser um object, seguindo a estrutura de uma função de item abaixo, ou um array, contendo várias funções de item.
Invocação[]
Os modificadores de item só podem ser invocados com o comando /item
. Ao fazer isso, é necessário especificar um slot de destino para invocar o modificador, seja um item dentro do conteúdo de um bloco de contêiner ou dentro do inventário de uma entidade.
Existem duas variações deste comando: /item modify
invoca um modificador sozinho no slot de destino, /item replace
substitui o item no slot de destino por outro e subsequentemente invoca um modificador sobre ele.
-
item modify (block <pos> | entity <targets>) <slot> <modifier> item replace (block <pos> | entity <targets>) <slot> from (block <pos> | entity <targets>) [<modifier>]
Embora os modificadores de itens só possam ser invocados usando comandos, as funções de itens (a estrutura subjacente) podem ser inseridas em outros arquivos, como tabelas de saque.
Formato JSON da função do item[]
Esta seção descreve o formato JSON de uma única função de item. Várias funções de item podem ser inseridas em um modificador de item, colocando-as em uma matriz JSON.
- A tag raiz da função do item.
- function: Localização do recurso da função a ser aplicada. As funções válidas são descritas abaixo.
- conditions: Uma lista de predicados, dos quais todos devem passar, para que esta função seja aplicada.
- Um predicado. A estrutura JSON desta tag é definida na página predicado.
- Outros parâmetros da função, descritos abaixo.
As possíveis localizações de recursos (namespace minecraft:
é omitido) para function e conteúdos extras associados:
- apply_bonus—Aplica uma fórmula de bônus predefinida à contagem da pilha de itens.
- enchantment: ID de um encantamento na ferramenta fornecida por contexto de saque usado para cálculo de nível.
- formula: A localização do recurso. Pode ser
binomial_with_bonus_count
para uma distribuição binomial (comn=level + extra
,p=probability
),uniform_bonus_count
para distribuição uniforme (de0
anível * bonusMultiplier
), ouore_drops
para uma função especial usada para drops de minério no jogo padrão (Count *= (max(1; randomInt(0(inclusive) .. (Level + 2)(exclusive))))
) . - parameters: Valores necessários para a fórmula.
- extra: Para a fórmula 'binomial_with_bonus_count', o valor extra.
- probability: Para a fórmula 'binomial_with_bonus_count', a probabilidade.
- bonusMultiplier: Para a fórmula 'uniform_bonus_count', o multiplicador de bônus.
- copy_name—Copia a tag de nome de uma entidade ou de uma entidade de bloco na tag
display.Name
do item.- source - O destino cujo nome será copiado. Especifica uma entidade ou entidade de bloco de contexto de saque. Pode ser
block_entity
,this
,killer
, oukiller_player
(não pode serdirect_killer
).
- source - O destino cujo nome será copiado. Especifica uma entidade ou entidade de bloco de contexto de saque. Pode ser
- copy_nbt—Copia valores NBT de uma entidade ou entidade de bloco especificada, ou de armazenamento de comandos para a tag
tag
do item.- source: Forma abreviada de source abaixo com type definido como
context
. Especifica uma entidade ou entidade de bloco de contexto de saque. Pode serblock_entity
,this
,killer
,direct_killer
, oukiller_player
. - source: Informações da entidade de bloco, entidade ou armazenamento de onde copiar o NBT.
- type: Defina como
context
para usar uma entidade de bloco ou uma entidade como fonte, oustorage
para usar um armazenamento de comando como fonte. - target: Incluído apenas se
type
estiver definido comocontext
. Especifica uma entidade ou entidade de bloco de contexto de saque para copiar o NBT. Pode serblock_entity
,this
,killer
,direct_killer
, oukiller_player
. - source: Incluído apenas se
type
estiver definido comostorage
. Um local do recurso especificando o ID de armazenamento do qual copiar o NBT.
- type: Defina como
- ops: Uma lista de operações de cópia.
- Uma operação NBT.
- source: O caminho NBT para copiar.
- target: O NBT path para onde copiar, começando pela tag
tag
do item. - op: Defina como
replace
para substituir qualquer conteúdo existente do caminho NBT de destino,append
para anexar a uma lista ou array oumerge
para mesclar em uma tag composta.
- Uma operação NBT.
- source: Forma abreviada de source abaixo com type definido como
- copy_state—Copia as propriedades do estado do bloco fornecidas por contexto de saque para a tag
BlockStateTag
do item.- block: Um ID do bloco. A função falha se o bloco não corresponder à lista properties.
- properties: Uma lista de propriedades para copiar.
- O nome de um estado de bloco a ser copiado.
- enchant_randomly—Encanta o item com um encantamento selecionado aleatoriamente. O poder do encantamento, se aplicável, é aleatório. Um livro será convertido em um livro encantado quando encantado.
- enchantments: Opcional. Lista de IDs de encantamentos para escolher. Se omitido, todos os encantamentos detectáveis (atualmente apenas Velocidade das almas e Passos furtivos não podem ser descobertos) aplicáveis ao item são possíveis.
- enchant_with_levels—Encanta o item, com o nível de encantamento especificado (aproximadamente equivalente a usar uma tabela de encantamentos nesse nível). Um livro será convertido em um livro encantado.
- treasure: Determina se encantamentos de tesouro são permitidos neste item. O padrão é falso.
- levels: Provedor de números. Especifica o nível de encantamento a ser usado.
- exploration_map—Se a origem for fornecida por contexto de saque, converte um mapa vazio em um mapa do explorador levando a uma estrutura gerada próxima.
- destination: Uma tag de estrutura para localizar. O padrão é
on_treasure_maps
. - decoration: O ícone usado para marcar o destino no mapa. Aceita qualquer um dos IDs de texto do ícone do mapa (sem distinção entre maiúsculas e minúsculas). Se
mansion
oumonument
for usado, a cor das linhas na textura do item muda para corresponder ao mapa do explorador correspondente. O padrão émansion
. - zoom: O nível de zoom do mapa resultante. O padrão é 2.
- search_radius: O tamanho, em pedaços, da área para procurar estruturas. A área marcada é quadrada, não circular. O raio 0 faz com que apenas o bloco atual seja pesquisado, o raio 1 faz com que o bloco atual e oito blocos adjacentes sejam pesquisados e assim por diante. O padrão é 50.
- skip_existing_chunks: Não procura em chunks que já foram gerados. O padrão é verdadeiro.
- destination: Uma tag de estrutura para localizar. O padrão é
- explosion_decay—Remove alguns itens de uma pilha, se o raio de explosão for fornecido por contexto de saque. Cada item na pilha de itens tem uma chance de 1/raio de explosão de ser perdido.
- fill_player_head—Adiciona tags de item necessárias de uma cabeça de jogador.
- entity: Especifica um jogador a ser usado para a cabeça do jogador. Especifica uma entidade de contexto de saque. Pode ser
this
,killer
,direct_killer
, oukiller_player
.
- entity: Especifica um jogador a ser usado para a cabeça do jogador. Especifica uma entidade de contexto de saque. Pode ser
- furnace_smelt—Funde o item como se estivesse em uma fornalha sem alterar sua contagem.
- limit_count—Limita a contagem de cada pilha de itens.
- limit: Um número inteiro para especificar o limite exato a ser usado.
- limit: Limita a contagem entre um valor mínimo e máximo.
- min: Opcional. Um provedor de números. Limite mínimo para usar.
- max: Opcional. Um provedor de números. Limite máximo para usar.
- looting_enchant—Ajusta o tamanho da pilha com base no nível do encantamento Saque na entidade
killer
fornecida por contexto de saque.- count: Um provedor de números. Especifica o número de itens adicionais por nível de saque. Observe que o número pode ser fracionário, arredondado após a multiplicação pelo nível de saque.
- limit: Especifica a quantidade máxima de itens na pilha após o cálculo do saque. Se o valor for 0, nenhum limite é aplicado. O padrão é 0.
- set_attributes—Adiciona modificadores de atributo ao item.
- modifiers:
- : Um modificador de atributo a ser adicionado.
- name: Nome do modificador.
- attribute: A localização do recurso do atributo sobre a qual este modificador deve agir.
- operation: A operação desse modificador de atributo. Um dos
addition
,multiply_base
oumultiply_total
. - amount: Um provedor de números. Especifica a quantidade do modificador.
- id: Opcional. UUID para atribuir o modificador, no formato hexadecimal hifenizado. Se nenhum for especificado, um novo UUID aleatório será gerado.
- slot: Define os slots em que o item deve estar para que o modificador tenha efeito. Um de:
mainhand
,offhand
,feet
,legs
,chest
,head
. - slot: Para escolher aleatoriamente entre um conjunto de slots possíveis. A lista contém strings de uma das opções de slot acima, para escolher aleatoriamente. A seleção aleatória pode ser ponderada listando o mesmo slot várias vezes.
- : Um modificador de atributo a ser adicionado.
- modifiers:
- set_contents - Define o conteúdo de um item de bloco de contêiner para uma lista de entradas.
- entries: Uma lista de produtor de entrada da tabela de saque para fornecer pilhas de itens.
- type: o tipo de entidade do bloco a ser escrito
BlockEntityTag.id
.
- set_count - Define o tamanho da pilha.
- count: Um provedor de números. Especifica o tamanho da pilha a ser definido.
- add: Opcional. Se
true
, a alteração será relativa à contagem atual. O padrão é falso.
- set_damage - Define o valor de dano do item (durabilidade).
- damage: Um provedor de números. Especifica a fração de dano a ser definida (1,0 é sem dano, 0,0 é zero de durabilidade restante).
- add: Opcional. Se
true
, a mudança será relativa ao dano atual. O padrão é falso.
- set_enchantments - Modifica os encantamentos do item. Um livro será convertido em um livro encantado.
- enchantments: Encantamentos para modificar.
- Um encantamento: O nome da chave é o ID do encantamento. Value é um provedor de números especificando o poder de encantamento. Os poderes são limitados a um máximo de 255. Diminuir um poder de encantamento abaixo de 1 removerá o encantamento, por meio de uma adição negativa relativa ou por meio de uma atribuição direta de valor.
- add: Opcional. Se
true
, a mudança será relativa ao nível atual. Presume-se que um encantamento inexistente comece em 0. O padrão é falso.
- enchantments: Encantamentos para modificar.
- set_instrument - Define as tags de item para itens de instrumento para um valor aleatório de uma tag.
- options: A localização do recurso começa com
#
de um instrumento tag, uma das listagens é selecionada aleatoriamente.
- options: A localização do recurso começa com
- set_loot_table - Define a tabela de saque para um bloco de contêiner quando colocado e aberto.
- name: Especifica a localização do recurso da tabela de saque a ser usada.
- seed: Opcional. Especifica a semente da tabela de saque. Se ausente ou definido como 0, a semente não será colocada no NBT e uma semente aleatória será usada ao abrir o contêiner.
- type: o tipo de entidade do bloco a ser escrito
BlockEntityTag.id
.
- set_lore - Adiciona ou altera a tradição do item.
- lore: Lista de linhas para acrescentar ou substituir na tradição do item.
- Uma linha de tradição de itens, seguindo o formato de texto JSON bruto. Os componentes que requerem resolução são resolvidos apenas se
entity
atingir com sucesso uma entidade.
- Uma linha de tradição de itens, seguindo o formato de texto JSON bruto. Os componentes que requerem resolução são resolvidos apenas se
- entity: Especifica a entidade para atuar como
@s
quando referenciada no componente de texto JSON. Especifica uma entidade de contexto de saque. Pode serthis
,killer
,direct_killer
, oukiller_player
. - replace: Opcional. Defina como
true
para substituir a tradição do item existente apenas com as linhas em lore. Sefalse
, as linhas são anexadas à lista de linhas de tradição existentes. O padrão é falso.
- lore: Lista de linhas para acrescentar ou substituir na tradição do item.
- set_name—Adiciona ou altera o nome personalizado do item.
- name: Um componente de texto JSON, substituindo o nome personalizado anterior no item. Os componentes que exigem resolução são resolvidos apenas se
entity
tiver como destino uma entidade com sucesso. - entity: Especifica a entidade para atuar como
@s
quando referenciada no componente de texto JSON. Especifica uma entidade no contexto de saque. Pode serthis
,killer
,direct_killer
, oukiller_player
.
- name: Um componente de texto JSON, substituindo o nome personalizado anterior no item. Os componentes que exigem resolução são resolvidos apenas se
- set_nbt—Adiciona ou altera os dados NBT do item.
- tag: O NBT a ser mesclado na tag
tag
do item, dentro de uma string JSON. As chaves externas{ }
do NBT devem estar presentes nessa string JSON. Cuidado adicional é necessário quando o NBT contém aspas"
, pois elas devem ser escapadas da sintaxe JSON com uma barra invertida\
.
- tag: O NBT a ser mesclado na tag
- set_potion—Define a tag
Potion
de um item.- id: O ID da poção. Defina como
empty
para remover a tagPotion
.
- id: O ID da poção. Defina como
- set_stew_effect—Define os efeitos de status para ensopado suspeito. Falha se invocado em um item que não seja ensopado suspeito.
- effects: Os efeitos a aplicar.
- Um efeito.
- type: O ID do efeito.
- duration: Um provedor de números. Da duração do efeito.
- Um efeito.
- effects: Os efeitos a aplicar.
Histórico[]
Edição Java | |||||
---|---|---|---|---|---|
1.17 | 20w46a | Adicionados modificadores de itens. | |||
1.18 | 21w39a | Adicionada a função set_potion . | |||
? | ? | Adicionada a função set_instrument . |
Problemas[]
Problemas relacionados com "Modificador de itens" são mantidos no rastreador de erros. Reporte problemas lá, em inglês.
Componentes |
| ||
---|---|---|---|
Pacotes de dados | |||
Tutoriais |
|