ItemsAdderAdditionsItemsAdderAdditions
Progrès

Prédicats de joueur

Ajoutez des exigences supplémentaires liées à l’état du joueur à n’importe quel critère de progrès personnalisé, comme les flags, le mode de jeu, le niveau, les emplacements d’inventaire, les effets, la position et les prédicats d’entité de style vanilla.

Since v1.0.9

Les prédicats de joueur permettent d’ajouter des exigences supplémentaires à un critère, en plus du déclencheur lui-même. Placez-les sous conditions.player. Le déclencheur doit d’abord se produire, puis le prédicat de joueur est vérifié juste avant l’attribution du critère.

criteria:
  sneaky_sleep:
    trigger: slept_in_bed
    conditions:
      player:
        flags:
          is_sneaking: true

conditions.player fonctionne avec les déclencheurs d’exécution. Le déclencheur impossible ignore les prédicats de joueur, car il ne peut être accordé que manuellement.

Formats objet et liste

Utilisez un objet unique lorsque vous n’avez besoin que d’un seul prédicat. Toutes les clés de l’objet doivent correspondre.

conditions:
  player:
    type: minecraft:player
    flags:
      is_sneaking: true
    type_specific:
      type: minecraft:player
      gamemode: survival

Vous pouvez aussi utiliser une liste. Chaque entrée de la liste doit correspondre. C’est utile si vous préférez les wrappers de prédicats au style vanilla.

conditions:
  player:
    - condition: minecraft:entity_properties
      predicate:
        flags:
          is_sneaking: true
    - condition: minecraft:entity_properties
      predicate:
        type_specific:
          type: minecraft:player
          gamemode: survival

Syntaxe des plages

Les valeurs numériques acceptent soit un nombre exact, soit un objet min/max.

level: 10

level:
  min: 10
  max: 30

Cette syntaxe est utilisée par le niveau du joueur, le niveau de nourriture, la vitesse de déplacement, la durée des potions, le niveau d’enchantement, la quantité d’objets, la durabilité, le niveau de lumière et d’autres vérifications numériques.

Vérifications courantes du joueur

conditions:
  player:
    flags:
      is_sneaking: true
      is_sprinting: false
    type_specific:
      type: minecraft:player
      gamemode: adventure
      level:
        min: 10
      food:
        level:
          min: 16
        saturation:
          min: 4.0
CléTypeDescription
flags.is_babybooléenCorrespond à l’état bébé/adulte lorsque l’entité le prend en charge.
flags.is_on_firebooléenExige que le joueur soit en feu ou ne soit pas en feu.
flags.is_sneakingbooléenExige l’état accroupi.
flags.is_sprintingbooléenExige l’état de sprint.
flags.is_swimmingbooléenExige l’état de nage.
flags.is_on_groundbooléenExige l’état au sol.
flags.is_flyingbooléenCorrespond au vol créatif ou au vol plané.
flags.is_fall_flyingbooléenExige le vol plané avec des élytres.
type_specific.gamemodechaîne ou listeCorrespond à un ou plusieurs modes de jeu : survival, creative, adventure ou spectator.
type_specific.levelnombre ou plageCorrespond au niveau d’XP du joueur.
type_specific.food.levelnombre ou plageCorrespond au niveau de nourriture.
type_specific.food.saturationnombre ou plageCorrespond à la saturation.

gamemode, level, food, advancements, recipes, stats, input et looking_at peuvent aussi être placés directement dans player, mais type_specific est plus clair et plus proche de la structure des prédicats vanilla.

Vérifications d’entrées

Les prédicats d’entrée peuvent vérifier les entrées de déplacement actuelles du joueur lorsque le serveur expose ces informations. sneak et sprint utilisent l’état Bukkit du joueur comme fallback lorsque les données d’entrée directes ne sont pas disponibles.

conditions:
  player:
    type_specific:
      type: minecraft:player
      input:
        forward: true
        jump: true
        sneak: false
        sprint: true
CléTypeDescription
input.forwardbooléenExige l’état de la touche avancer.
input.backwardbooléenExige l’état de la touche reculer.
input.leftbooléenExige l’état de la touche gauche.
input.rightbooléenExige l’état de la touche droite.
input.jumpbooléenExige l’état de la touche saut.
input.sneakbooléenExige l’entrée accroupissement ou l’état accroupi.
input.sprintbooléenExige l’entrée sprint ou l’état de sprint.

Vérifications de position

conditions:
  player:
    location:
      dimension: minecraft:overworld
      world: world
      biomes:
        - minecraft:plains
        - minecraft:forest
      position:
        x:
          min: 100
          max: 200
        y:
          min: 60
        z: 0
      block:
        blocks: minecraft:grass_block
      light:
        min: 8
      can_see_sky: true
CléTypeDescription
location.dimension / dimensionschaîne ou listeCorrespond à l’environnement du monde, comme minecraft:overworld, minecraft:the_nether ou minecraft:the_end.
location.worldchaîneCorrespond au nom du monde Bukkit.
location.biome / biomeschaîne ou listeCorrespond aux clés de biomes.
location.position.xnombre ou plageCorrespond à la coordonnée X.
location.position.ynombre ou plageCorrespond à la coordonnée Y.
location.position.znombre ou plageCorrespond à la coordonnée Z.
location.blockprédicat de blocCorrespond au bloc à la position.
location.lightnombre ou plageCorrespond au niveau de lumière du bloc.
location.can_see_skybooléenExige une visibilité vers le ciel.

location.structure et location.structures ne sont pas pris en charge. Si vous les configurez, le prédicat ne correspondra pas.

Prédicats de blocs

Les prédicats de blocs sont utilisés par location.block, stepping_on et movement_affected_by.

conditions:
  player:
    stepping_on:
      block:
        blocks: minecraft:stone
        state:
          axis: y
CléTypeDescription
blockchaîne ou sectionRaccourci pour un seul bloc ou section complète de prédicat de bloc.
blocks / idchaîne ou listeIDs de blocs à faire correspondre.
state.<name>chaîne ou plageCorrespond exactement à une valeur d’état de bloc, ou avec min/max.

Les tags de blocs personnalisés ItemsAdderAdditions sont résolus en premier. Si aucun tag personnalisé ne correspond, la syntaxe comme #minecraft:logs est résolue avec les tags de blocs vanilla. Les tags vanilla correspondent uniquement aux blocs vanilla.

Prédicats d’objets et d’équipement

Les prédicats d’objets peuvent être utilisés dans equipment, slots et les prédicats d’entité imbriqués. Ils acceptent les IDs ItemsAdder, les IDs MMOItems, les IDs d’objets vanilla, les tags d’objets vanilla comme #minecraft:planks, et les tags personnalisés pris en charge.

conditions:
  player:
    equipment:
      mainhand:
        items: my_pack:ruby_sword
        count: 1
        durability:
          min: 100
        components:
          minecraft:custom_model_data: 123
        enchantments:
          - enchantment: minecraft:sharpness
            levels:
              min: 3
CléTypeDescription
item / itemschaîne ou listeIDs d’objets à faire correspondre. Une chaîne simple peut servir de raccourci pour un objet.
countnombre ou plageCorrespond à la quantité de la pile.
durabilitynombre ou plageCorrespond à la durabilité restante.
components.minecraft:custom_model_dataentierCorrespond au custom model data.
components.minecraft:custom_namechaîneCorrespond au nom d’affichage de l’objet.
components.minecraft:damageentierCorrespond aux dégâts de l’objet.
enchantments[].enchantment / idchaîneClé de l’enchantement.
enchantments[].levelsnombre ou plageNiveau d’enchantement requis.

Les tags d’objets personnalisés ItemsAdderAdditions sont résolus en premier. Si aucun tag personnalisé ne correspond, les tags d’objets vanilla sont résolus avec le registre d’objets vanilla. Les sections predicates des objets ne sont pas encore prises en charge et font échouer le prédicat d’objet de manière fermée au lieu de correspondre accidentellement.

Emplacements

Utilisez slots lorsque vous devez vérifier l’inventaire du joueur au lieu des seuls objets équipés.

conditions:
  player:
    slots:
      weapon.mainhand:
        items: minecraft:diamond_sword
      inventory.0:
        items: minecraft:apple
        count: 2
      hotbar.2:
        items: my_pack:ruby_staff
Clé d’emplacementDescription
mainhand ou weapon.mainhandObjet de la main principale.
offhand ou weapon.offhandObjet de la main secondaire.
head ou armor.headEmplacement du casque.
chest ou armor.chestPlastron.
legs ou armor.legsJambières.
feet ou armor.feetBottes.
*, inventory.*, container.*N’importe quel emplacement de l’inventaire du joueur.
hotbar.<slot>Emplacement de la hotbar, de 0 à 8.
inventory.<slot> ou inventory.<start>-<end>Emplacements de l’inventaire principal, avec un décalage après la hotbar.
container.<slot> ou container.<start>-<end>Numéros d’emplacements bruts du conteneur.

Effets de potion

conditions:
  player:
    effects:
      minecraft:speed:
        amplifier:
          min: 1
        duration:
          min: 100
        ambient: false
        visible: true
CléTypeDescription
effects.<effect>.amplifiernombre ou plageCorrespond à l’amplificateur de potion.
effects.<effect>.durationnombre ou plageCorrespond à la durée restante en ticks.
effects.<effect>.ambientbooléenCorrespond au flag ambient.
effects.<effect>.visiblebooléenCorrespond à la visibilité des particules.

Progression, recettes et statistiques

conditions:
  player:
    type_specific:
      type: minecraft:player
      advancements:
        minecraft:story/mine_stone: true
        my_pack:custom_root:
          root_trigger: true
      recipes:
        minecraft:diamond_sword: true
      stats:
        - type: minecraft:custom
          stat: minecraft:jump
          value:
            min: 50
CléTypeDescription
advancements.<id>booléen ou sectionExige qu’un autre progrès soit terminé ou non. Une section vérifie des critères nommés.
recipes.<id>booléenExige qu’une recette soit découverte ou non découverte.
stats[].typechaîneGroupe de statistiques, comme minecraft:custom, minecraft:mined, minecraft:used, minecraft:killed ou minecraft:killed_by.
stats[].statchaîneClé de statistique, clé de matériau ou clé d’entité selon le type de statistique.
stats[].valuenombre ou plageValeur de statistique requise.

Vérifications d’entités imbriquées

Le même système de prédicats d’entités peut être utilisé pour les entités liées.

conditions:
  player:
    type_specific:
      type: minecraft:player
      looking_at:
        type: minecraft:zombie
        distance:
          absolute:
            max: 12
    vehicle:
      type: minecraft:horse
CléTypeDescription
passengerprédicat d’entitéCorrespond à l’un des passagers du joueur.
vehicleprédicat d’entitéCorrespond à l’entité que le joueur chevauche.
targeted_entityprédicat d’entitéPour les mobs, correspond à leur cible actuelle.
type_specific.looking_atprédicat d’entitéPour les joueurs, correspond à l’entité qu’ils regardent dans un rayon de 100 blocs.
distancesectionCorrespond à la distance entre le joueur et l’entité liée. Prend en charge absolute, horizontal, x, y et z.

Autres prédicats spécifiques au type

Les prédicats d’entité imbriqués peuvent aussi utiliser quelques vérifications propres à certains types d’entités.

TypeClésDescription
minecraft:sheepshearedCorrespond à l’état tondu ou non du mouton.
minecraft:slime, minecraft:magma_cube, minecraft:cube_mobsizeCorrespond à la taille du slime avec un nombre ou une plage.
minecraft:raideris_captain, has_raidCorrespond à l’état de capitaine de patrouille et à l’état de raid lorsque disponible.
minecraft:fishing_hookin_open_waterCorrespond à l’état en eau libre de l’hameçon lorsque disponible.

Limitations

  • Les tags de types d’entités sont acceptés syntaxiquement, mais ne sont pas résolus. Les tags d’objets et de blocs vanilla sont résolus là où les prédicats d’objets/blocs sont pris en charge.
  • Les sections components et predicates au niveau de l’entité ne sont pas prises en charge et font échouer le prédicat de manière fermée.
  • Les structures de position ne sont pas prises en charge.
  • La correspondance NBT est volontairement limitée ; elle ne prend en charge que les vérifications simples de scoreboard tags dans une chaîne nbt.

On this page