Minecraft Wiki
Advertisement
Para predicados dentro de modelos, consulte Tutoriais/Modelos § Predicados do item.
Information icon
Esse recurso é exclusivo para Edição Java. 

Predicados são estruturas JSON encontradas em vários locais diferentes nos pacotes de dados. Eles são invocados com vários meios para verificar as condições do mundo. Eles retornam um resultado pass ou fail ao invocador, que agirá de maneira diferente com base nesse resultado.

Arquivos de predicados são arquivos de pacotes de dados autônomos que contêm um ou mais predicados. Os predicados também podem ser definidos de outras maneiras.

Este artigo descreve como os predicados são definidos e invocados e também descreve a estrutura JSON de um predicado.

Definição de arquivos predicados[]

Um arquivo de predicado é definido com o formato JSON. Ele contém a estrutura de um predicado ou uma matriz com vários predicados.

O elemento raiz de um arquivo de predicado pode ser um  object seguindo a estrutura de predicados abaixo ou um  array contendo vários predicados.

Invocação[]

Predicados e arquivos de predicados podem ser chamados de várias maneiras diferentes de outros arquivos de pacote de dados:

Invocação de comandos[]

Comandos ou funções podem invocar arquivos predicados de duas maneiras:

  • Seletores de destino: O argumento seletor predicate= verifica arquivos de predicado como um filtro para seleção de entidade. O arquivo de predicado é invocado uma vez por entidade que precisa de filtragem, sempre no local da entidade.
  • /execute: Um subcomando, /execute if predicate, pode invocar um arquivo de predicado para retornar um resultado ou para decidir se deve continuar com uma cadeia de subcomando. O arquivo predicado é invocado uma vez na posição contextual atual de execução.

Invocação de outros predicados[]

O tipo de condição minecraft:reference invoca um arquivo predicado e retorna o resultado para o invocador.

Presença de predicados em outros arquivos[]

Além dos arquivos de predicado, os próprios predicados são usados em outros locais dentro de outros arquivos de pacote de dados, como progressos e em tabelas de saque.

Formato JSON do predicado[]

Esta seção descreve o formato JSON de um predicado.

  • : O elemento raiz do predicado.
    •  condition: O local do recurso do tipo de condição a ser verificado.
    • Outras partes do predicado, especificadas abaixo.

Os valores possíveis para  condition e conteúdos extras associados:

  • alternative—Avalia uma lista de predicados e passa se algum deles passar. Invocável de qualquer contexto.
    •  terms: A lista de predicados a serem avaliados. Um predicado dentro desta matriz deve ser um  object.
      • Um predicado, seguindo esta estrutura recursivamente.
  • block_state_property—Verifica o bloco minerado e seus estados de bloco. Requer estado de bloco fornecido por contexto de saque e sempre falha se não for fornecido.
    •  block: Um ID de bloco. O teste falha se o bloco não corresponder.
    •  properties: (Opcional) Um mapa de nomes de estado de bloco para valores. Resulta em erro se o bloco não tiver essas propriedades.
      •  name: Um estado de bloco e um valor exato. O valor é uma string.
      •  name: Um nome de estado de bloco e um valor de intervalo para corresponder.
        •  min: O valor mínimo.
        •  max: O valor máximo.
  • entity_properties—Verifica as propriedades de uma entidade. Invocável de qualquer contexto.
  • entity_scores—Verifica as pontuações do placar de uma entidade. Requer a entidade especificada fornecida por contexto de saque e sempre falha se não for fornecido.
    •  entity: A entidade a ser verificada. Especifica uma entidade de contexto de saque. Pode ser this, killer, direct_killer, ou killer_player.
    •  scores: Pontuações para verificar. Todas as pontuações especificadas devem ser aprovadas para que a condição seja aprovada.
      •  A score: O nome da chave é o objetivo, enquanto o valor especifica um intervalo de valores de pontuação necessários para que a condição seja aprovada.
      •  A score: Versão abreviada da outra sintaxe acima, para verificar a pontuação em relação a um único número apenas. O nome da chave é o objetivo, enquanto o valor é a pontuação necessária.
  • inverted—Inverte outra condição da tabela de saque. Invocável de qualquer contexto.
    •  term: A condição a ser negada, seguindo a mesma estrutura descrita aqui, recursivamente.
  • killed_by_player—Verifica se existe uma entidade killer_player fornecida por contexto de saque. Requer killer_player entidade fornecida por contexto de saque e sempre falha se não for fornecido.
  • location_check—Verifica a localização atual em relação aos critérios de localização. Requer origem fornecida por contexto de saque e sempre falha se não fornecido.
    •  offsetX - deslocamentos opcionais para localização
    •  offsetY - deslocamentos opcionais para localização
    •  offsetZ - deslocamentos opcionais para localização
    •  predicate: Predicado aplicado ao local, usa a mesma estrutura que os progressos.
  • random_chance—Gera um número aleatório entre 0,0 e 1,0 e verifica se é menor que um valor especificado. Invocável de qualquer contexto.
    •  chance: Taxa de sucesso como um número 0.0–1.0.
  • random_chance_with_looting—Gera um número aleatório entre 0,0 e 1,0 e verifica se é menor que um valor especificado que foi afetado pelo nível de Saque na entidade killer. Requer uma entidade killer fornecido por contexto de saque e, se não for fornecido, o nível de saque é considerado como 0.
    •  chance: Taxa básica de sucesso.
    •  looting_multiplier: Ajuste de pilhagem à taxa de sucesso básica. A fórmula é chance + (looting_level * looting_multiplier).
  • reference—Chama um arquivo de predicado e retorna seu resultado. Invocável de qualquer contexto.
    •  name: O local do recurso do predicado a ser invocado. Uma referência cíclica causa uma falha de análise.
  • survives_explosion—Retorna sucesso com probabilidade 1 ÷ explosion radius. Requer raio de explosão fornecido por contexto de saque e sempre sucesso se não for fornecido.
  • table_bonus—Passa com probabilidade escolhida de uma lista, indexada pelo poder de encantamento. Requer a ferramenta fornecida por contexto de saque. Se não for fornecido, o nível de encantamento é considerado 0.
    •  enchantment: Localização do recurso de encantamento.
    •  chances: Lista de probabilidades de poder de encantamento, indexada a partir de 0.
  • time_check—Compara a hora do dia atual (ou melhor, 24000 * contagem de dias + hora do dia) com os valores fornecidos. Invocável de qualquer contexto.
    •  value: A hora para comparar com a hora do dia.
    •  value: Versão abreviada de  value acima, usada para verificar apenas um único valor. Provedores de números não podem ser usados nesta forma abreviada.
    •  period: Se presente, a hora do dia é primeiro reduzida ao módulo do número fornecido antes de ser verificada contra  value. Por exemplo, definir isso como 24000 faz com que o horário verificado seja igual ao dia atual.
  • value_check—Compara um número com outro número ou intervalo de números. Invocável de qualquer contexto.
    •  value: Um provedor de números. O número a testar.
    •  range: O intervalo de números para comparar  value.
    •  range: Versão abreviada de  range acima, usada para comparar  value contra um único número apenas. Provedores de números não podem ser usados nesta forma abreviada.
  • weather_check—Verifica o clima atual do jogo. Invocável de qualquer contexto.
    •  raining: Se verdadeiro, a condição passa somente se estiver chovendo ou trovejando.
    •  thundering: Se verdadeiro, a condição passa apenas se estiver trovejando.

Histórico[]

Edição Java
1.15 19w38a Predicados adicionados aos pacotes de dados.
1.16 20w12a Adicionado subpredicado fishing_hook no predicado da entidade para verificar as propriedades do anzol.
Em breve na Edição Java
1.19.3 23w06a Removidos os seguintes campos de predicado de tipo de dano: is_projectile, is_explosion, bypasses_armor, bypasses_invulnerability, bypasses_magic, is_fire, is_magic, e is_lightning.
Uma nova matriz de tags foi adicionada. Cada entrada tem dois campos:
  • id: O ID de uma tag de tipo de dano.
  • expected: Se espera-se que o dano tenha ou não uma tag para o predicado corresponder.
Advertisement