Bearbeiten von „Prädikate

Zur Navigation springen Zur Suche springen
Wenn Du dir unsicher bist, lies dir die Gestaltungsrichtlinien und die allgemeinen Richtlinien durch.
Nutze den Vorschau zeigen Button, um deine Bearbeitung vor dem Speichern zu überprüfen.
Hilfe zum Bearbeiten findest du hier.
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen. Falls du bereits einen vorhandenen Account auf dem Fandom-Wiki hattest, kannst du dein Benutzerkonto migrieren.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
'''Prädikate''' beinhalten Eigenschaften für Bedingungen die man im Selektor der [[Zielauswahl]] <code>@e[predicate=...]</code> oder mit dem {{b|/execute if{{!}}unless predicate ...}} verwenden kann. Sie werden in [[Datenpaket]]en angelegt und es gibt keine Standard-Prädikatdateien, man kann sich also keine Vorlage holen um eigene zu erstellen, stattdessen benötigt man die Datenstruktur.
{{Exklusiv|Java}}
'''Prädikate''' sind Bedingungen die ein <code>true</code> (wahr) oder <code>false</code> (falsch) zurückgeben. Sie sind JSON-Strukturen, die an mehreren verschiedenen Stellen in [[Datenpaket]]en zu finden sind. Sie werden mit verschiedenen Mitteln aufgerufen, um Bedingungen innerhalb der Welt zu prüfen.


== Datenquelle ==
'''Prädikatdateien''' sind eigenständige Datenpaketdateien, die ein oder mehrere Prädikate enthalten. Prädikate können auch auf andere Weise definiert werden.

Dieser Artikel beschreibt, wie Prädikate definiert und aufgerufen werden, und beschreibt auch die JSON-Struktur eines Prädikats.

<!-- Das Inhaltsverzeichnis (TOC = Table Of Content) wird hier ohne führende Kapitelnummerierung und ohne Auflistung der Abschnitte mit 4 (oder mehr) Gleichzeichen angezeigt. -->
<div class="toc-nonumbers toc-hidelevel3">__TOC__</div>

== Definition ==
{{HA|Datenpaket}}
<div class="treeview">
<div class="treeview">
* {{JSON|ordner|<''Name des Datenpakets''>}}
* {{JSON|ordner|''Name des Datenpakets''}}
** {{JSON|datei|pack.mcmeta}}: Die [[Datenpaket#Definitionsdatei|Definitionsdatei]].
** {{JSON|datei|pack.mcmeta:}} Die [[Datenpaket#Definitionsdatei|Definitionsdatei]].
** {{JSON|ordner|data}}
** {{JSON|ordner|data:}} Eigene Weltdaten.
*** {{JSON|ordner|<''namensraum''>}}
*** {{JSON|ordner|''eigener-namensraum'':}} Für eigene Weltdaten legt man einen eigenen [[Namensraum]] an.
**** {{JSON|ORDNER|predicate}}: Eigene Prädikate.
**** {{JSON|ORDNER|predicates:}} Eigene Prädikate.
***** {{JSON|datei|<''datei''>.json}}: Eine Prädikat-Datei.
***** {{JSON|datei|beispiel_1.json:}} Eine Prädikat Datei.
***** {{JSON|datei|beispiel_2.json}}
***** {{JSON|ordner|''eigener-namensraum'':}} Eigener Unterordner.
****** {{JSON|datei|beispiel_3.json}}
</div>
</div>

== Verwendung ==
Prädikate und Prädikatdateien können auf verschiedene Weise von anderen Datenpaketdateien aus aufgerufen werden:

=== Befehle ===
[[Befehl]]e oder [[Funktion]]en können Prädikatdateien auf zwei Arten aufrufen:

* [[Zielauswahl]]: Das Selektorargument <code>@e[predicate=...]</code> prüft Prädikatdateien als Filter für die Objektauswahl. Die Prädikatdatei wird einmal pro Objekt aufgerufen, die gefiltert werden muss, und zwar jedes Mal am Standort des Objekt.
* {{b|/execute}}: Ein Unterbefehl, <code>/execute if predicate</code>, kann eine Prädikatdatei aufrufen, um entweder ein Ergebnis zurückzugeben oder zu entscheiden, ob mit einer Unterbefehlskette fortgefahren werden soll. Die Prädikatdatei wird einmal an der aktuellen kontextuellen Ausführungsposition aufgerufen.

=== Andere Prädikate ===
Der Bedingungstyp <code>minecraft:reference</code> ruft eine Prädikatdatei auf und gibt das Ergebnis an den Aufrufer zurück.

=== Vorhandensein in anderen Dateien ===
Zusätzlich zu Prädikatdateien werden Prädikate selbst an anderen Stellen in anderen Datenpaketdateien verwendet, wie z. B. [[Fortschrittsdefinition|Fortschritte]], [[Beutetabellen]] und [[Verzauberungsdefinition|Verzauberungen]].


== Datenstruktur ==
== Datenstruktur ==
=== Prädikatbasisdaten ===
<div class="treeview">
<div class="treeview">
* {{NBT|compound}} Die namenlose Wurzel-Eigenschaft.
* {{NBT|compound}} Die Wurzel-Eigenschaft.
** {{NBT|string|condition}}: Die Bedingungen.
** {{NBT|string|condition}}: Die Voraussetzungen.
** Teile der Bedingung, siehe unten.
** Andere Teile der Bedingung, siehe unten.
</div>

=== Liste der Prädikate ===
<div style="column-count:4>
*{{GL|redstone-verstärker|all_of|link=#all_of}}
*{{GL|redstone-komparator|any_of|link=#any_of}}
*{{BL|eichenholztreppe|block_state_property|link=#block_state_property}}
*{{GL|eisenaxt|damage_source_properties|link=#damage_source_properties}}
*{{GL|diamantstiefel|enchantment_active_check|link=#enchantment_active_check}}
*{{OL|zombie|entity_properties|link=#entity_properties}}
*{{OL|shulker|entity_scores|link=#entity_scores}}
*{{BL|redstone-fackel|inverted|link=#inverted}}
*{{GL|totem-der-unsterblichkeit|killed_by_player|link=#killed_by_player}}
*{{OL|verwüster|location_check|link=#location_check}}
*{{GL|holzhacke|match_tool|link=#match_tool}}
*{{BL|werfer|random_chance|link=#random_chance}}
*{{GL|verzaubertes-buch|random_chance_with_enchanted_bonus|link=#random_chance_with_enchanted_bonus}}
*{{BL|endertruhe|reference|link=#reference}}
*{{BL|tnt|survives_explosion|link=#survives_explosion}}
*{{BL|truhe|table_bonus|link=#table_bonus}}
*{{GL|uhr|time_check|link=#time_check}}
*{{GL|erfahrungsfläschchen|value_check|link=#value_check}}
*{{GL|pulverschneeeimer|weather_check|link=#weather_check}}
</div>
</div>


Die möglichen Werte für {{NBT|string|condition}} und den zugehörigen zusätzlichen Inhalt:
==== all_of (Und-Verknüpfung) ====
{{Anker|all_of|Und-Verknüpfung}}
<div class="treeview">
<div class="treeview">
* '''all_of''' - Verbindet die Bedingungen der Parameter <code>terms</code> als ein "UND".
* '''all_of''' - Verbindet die Bedingungen der Parameter "terms" als ein "UND".
**{{NBT|list|terms}}: Eine Liste der Bedingungen für die Teilnahme mit "UND".
**{{NBT|list|terms}}: Eine Liste der Bedingungen für die Teilnahme mit "UND".
***{{NBT|compound}} Eine Bedingung.
***{{NBT|compound}} Eine Bedingung.
</div>


* '''any_of''' - Verbindet die Bedingungen der Parameter "terms" als ein "ODER".
==== any_of (Oder-Verknüpfung) ====
{{Anker|any_of|Oder-Verknüpfung}}
<div class="treeview">
* '''any_of''' - Verbindet die Bedingungen der Parameter <code>terms</code> als ein "ODER".
**{{NBT|list|terms}}: Eine Liste der Bedingungen für die Teilnahme mit "ODER".
**{{NBT|list|terms}}: Eine Liste der Bedingungen für die Teilnahme mit "ODER".
***{{NBT|compound}} Eine Bedingung.
***{{NBT|compound}} Eine Bedingung.
</div>


==== block_state_property (Blockzustandseigenschaften) ====
{{Anker|block_state_property|Blockzustandseigenschaften}}
<div class="treeview">
* '''block_state_property''' - Überprüft den [[Blockzustand]].
* '''block_state_property''' - Überprüft den [[Blockzustand]].
** {{NBT|string|block}}: Eine Block-Namens-ID. Der Test wird fehlschlagen wenn der Block nicht die entsprechende Namens-ID hat.
** {{NBT|string|block}}: Eine Block-Namens-ID. Der Test wird fehlschlagen wenn der Block nicht die entsprechende Namens-ID hat.
** {{NBT|compound|properties}}: ''(Optional)'' Eine Zuordnung von Blockzuständen mit Variablen. Alle Variablen sind Strings. Der Test wird fehlschlagen wenn der Block nicht die entsprechenden Namens-IDs hat.
** {{NBT|compound|properties}}: ''(Optional)'' Eine Karte von Blockzuständen mit Variablen. Alle Variablen sind Strings. Der Test wird fehlschlagen wenn der Block nicht die entsprechenden Namens-IDs hat.
*** {{NBT|string|''name''}}: Ein Blockzustand und ein exakter Wert. Der Wert ist eine Zeichenfolge.
*** {{NBT|compound|''name''}}: Ein Blockzustandsname und ein passender Bereichswert.
**** {{NBT|string|min}}: Der Mindestwert.
**** {{NBT|string|max}}: Der Höchstwert.
</div>


==== damage_source_properties (Schadensquelleneigenschaften) ====
* '''damage_source_properties''' - Überprüft die Eigenschaften der Schadensquelle.
**{{NBT|boolean|is_explosion}}: Wenn die Schadensquelle eine Explosion ist.
{{Anker|damage_source_properties|Schadensquelleneigenschaften}}
**{{NBT|boolean|is_projectile}}: Wenn die Schadensquelle ein Geschoss ist.
<div class="treeview">
**{{NBT|boolean|is_fire}}: Wenn die Schadensquelle Feuerschaden ist.
* '''damage_source_properties''' - Überprüft die Eigenschaften der [[Schaden]]squelle.
**{{NBT|boolean|is_lightning}}: Wenn die Schadensquelle ein Blitzeinschlag ist.
** {{Lade Daten|Bedingung/Schadensart|nbt=predicate:|Prädikat angewendet auf die Schadensart, nutzt dieselbe Struktur wie Fortschritte.}}
**{{NBT|boolean|is_magic}}: Wenn die Schadensquelle ein Statuseffekt ist.
</div>
**{{NBT|boolean|bypasses_magic}}: Dies gilt nur für Hunger.
**{{NBT|boolean|bypasses_invulnerability}}: Dies gilt nur für Schäden, wenn ein Spieler in die Leere fällt.
**{{NBT|boolean|bypasses_armor}}: Schaden der die Rüstung durchdrungen hat.
**{{NBT|compound|source_entity}}: Die Ursache des Schadens. Wenn beispielsweise ein Skelett einen Spieler mit einem Pfeil abschießt, ist das Skelett die Quelle.
**{{NBT|compound|direct_entity}}: Die direkte Ursache des Schadens. Wenn beispielsweise ein Skelett einen Spieler mit einem Pfeil schießt, ist der Pfeil das direkte Objekt.


* '''entity_properties''' - Testeigenschaften einer Kreatur.
==== enchantment_active_check (Verzauberungsüberprüfung) ====
{{Anker|enchantment_active_check|Verzauberungsüberprüfung}}
<div class="treeview">
* '''enchantment_active_check''' - Überprüft, ob die [[Verzauberung]] aktiv war. Erfordert den aktiven Status der Verzauberung, der vom Beutekontext bereitgestellt wird, und schlägt immer fehl, wenn er nicht bereitgestellt wird. Es ist daher nur vom Beutekontext <code>enchanted_location</code> aus verwendbar.
** {{NBT|bool|active}}: Ob geprüft werden soll, ob eine aktive (<code>true</code>) oder inaktive (<code>false</code>) Verzauberung vorliegt.
</div>

==== entity_properties (Objekteigenschaften) ====
{{Anker|entity_properties|Objekteigenschaften}}
<div class="treeview">
* '''entity_properties''' - Testeigenschaften einer [[Kreatur]] oder [[Objekt]].
** {{NBT|string|entity}}: Gibt die Kreatur an, die geprüft werden soll für die Bedingung. Wenn es auf <code>this</code> gesetzt ist, um die Kreatur zu verwenden, die gestorben ist, oder den Spieler, der den Fortschritt erlangt hat, den Behälter geöffnet oder den Block abgebaut hat, <code>killer</code> für den Killer oder <code>killer_player</code> für einen Killer, der ein Spieler ist .
** {{NBT|string|entity}}: Gibt die Kreatur an, die geprüft werden soll für die Bedingung. Wenn es auf <code>this</code> gesetzt ist, um die Kreatur zu verwenden, die gestorben ist, oder den Spieler, der den Fortschritt erlangt hat, den Behälter geöffnet oder den Block abgebaut hat, <code>killer</code> für den Killer oder <code>killer_player</code> für einen Killer, der ein Spieler ist .
** {{Lade Daten|Bedingung/Wesen|nbt=predicate:|Prädikat angewendet auf die Kreatur, nutzt dieselbe Struktur wie Fortschritte.}}
** {{NBT|compound|predicate}}: Das auf den Standort angewendete Prädikat verwendet dieselbe Struktur wie Fortschritte.
*** {{NBT|compound|flags}}: Prädikatflags, die überprüft werden sollen.
</div>
**** {{NBT|bool|is_on_fire}}: Überprüft, ob das Objekt brennt.
**** {{NBT|bool|is_sneaking}}: Überprüft, ob das Objekt schleicht.
**** {{NBT|bool|is_sprinting}}: Überprüft, ob das Objekt sprintet.
**** {{NBT|bool|is_swimming}}: Überprüft, ob das Objekt schwimmt.
**** {{NBT|bool|is_baby}}: Überprüft, ob das Objekt ein Baby ist.


* '''entity_scores''' - Überprüft den Punktestand eines Objekts.
==== entity_scores (Objekt-Punktestände) ====
{{Anker|entity_scores|Objekt-Punktestände}}
<div class="treeview">
* '''entity_scores''' - Überprüft den [[Befehl/scoreboard|Punktestand]] eines Objekts.
** {{NBT|string|entity}}: Gibt das Objekt an, das überprüft werden soll für die Bedingung. Wenn <code>this</code> angegeben ist, um das Objekt zu verwenden, die gestorben ist, oder den Spieler, der den Fortschritt erlangt hat, den Behälter geöffnet oder den Block abgebaut hat, <code>killer</code> für den Killer oder <code>killer_player</code> für einen Killer, der ein Spieler ist.
** {{NBT|string|entity}}: Gibt das Objekt an, das überprüft werden soll für die Bedingung. Wenn <code>this</code> angegeben ist, um das Objekt zu verwenden, die gestorben ist, oder den Spieler, der den Fortschritt erlangt hat, den Behälter geöffnet oder den Block abgebaut hat, <code>killer</code> für den Killer oder <code>killer_player</code> für einen Killer, der ein Spieler ist.
** {{NBT|compound|scores}}: Alle Punktestände die überprüft werden sollen. Alle spezifischen Punktestände müssen für die Bedingung passen um zu bestehen.
** {{NBT|compound|scores}}: Alle Punktestände die überprüft werden sollen. Alle spezifischen Punktestände müssen für die Bedingung passen um zu bestehen.
*** {{NBT|compound|Ein Punkte-Ziel}}: Schlüsselname ist das Punkte-Ziel (objective) solange die Variablen speziell einen Bereich von score-Variablen für die Bedingung benötigen um zu bestehen.
*** {{NBT|int|A score}}: Schlüsselname ist der Punktezähler (objective) solange die Variablen im exakten Bereich liegen, wie die Bedingung es vorgibt.
*** {{NBT|compound|A score}}: Schlüsselname ist der Punktezähler (objective) solange die Variablen speziell einen Bereich von score-Variablen für die Bedingung benötigen um zu bestehen.
**** {{NBT|compound}}{{NBT|int|min}}: Mindestpunktzahl.
**** {{NBT|compound}}{{NBT|int|max}}: Höchstpunktzahl.
**** {{NBT|int|min}}: Mindestpunktzahl.
**** {{NBT|int|max}}: Höchstpunktzahl.
*** {{NBT|int|Ein Punkte-Ziel}}: Schlüsselname ist das Punkte-Ziel (objective) solange die Variablen im exakten Bereich liegen, wie die Bedingung es vorgibt.
</div>


* '''inverted''' - Negiert die Bedingung im Parameter "term".
==== inverted (Invertierung) ====
{{Anker|inverted|Invertierung}}
<div class="treeview">
* '''inverted''' - Negiert die Bedingung im Parameter <code>term</code>.
** {{NBT|compound|term}}: Die zu negierende Bedingung.
** {{NBT|compound|term}}: Die zu negierende Bedingung.
</div>


==== killed_by_player (Tötung durch Spieler) ====
* '''killed_by_player''' - Testet ob <code>killer_player</code> Entität verfügbar ist.
** {{NBT|bool|inverse}}: Falls vorhanden ist die Bedingung erfolgreich wenn <code>killer_player</code> ''nicht'' verfügbar ist.
{{Anker|killed_by_player|Tötung durch Spieler}}
<div class="treeview">
* '''killed_by_player''' - Testet ob <code>attacking_player</code>-Spieler verfügbar ist.
</div>


==== location_check (Standortüberprüfung) ====
{{Anker|location_check|Standortüberprüfung}}
<div class="treeview">
* '''location_check''' - Überprüft, ob der aktuelle Standort übereinstimmt.
* '''location_check''' - Überprüft, ob der aktuelle Standort übereinstimmt.
** {{NBT|int|offsetX}} - Optional Versatz des Standorts.
** {{NBT|int|offsetX}} - Optional Versatz des Standorts.
** {{NBT|int|offsetY}} - Optional Versatz des Standorts.
** {{NBT|int|offsetY}} - Optional Versatz des Standorts.
** {{NBT|int|offsetZ}} - Optional Versatz des Standorts.
** {{NBT|int|offsetZ}} - Optional Versatz des Standorts.
** {{Lade Daten|Bedingung/Standort|nbt=predicate:|Prädikat angewendet auf Standort, nutzt dieselbe Struktur wie Fortschritte.}}
** {{NBT|compound|predicate}}: Prädikat angewendet auf Standort, nutzt dieselbe Struktur wie Fortschritte.
</div>


* '''match_tool''' - Überprüft ein Werkzeug.
==== match_tool (Werkzeugüberprüfung) ====
** {{NBT|compound|predicate}}: Prädikat auf Element angewendet, verwendet dieselbe Struktur wie Fortschritte.
{{Anker|match_tool|Werkzeugüberprüfung}}
<div class="treeview">
* '''match_tool''' - Überprüft ein [[Werkzeug]].
** {{Lade Daten|Bedingung/Gegenstand|nbt=predicate:|Prädikat wird auf einen Gegenstand angewendet, verwendet dieselbe Datenstruktur wie bei Fortschritten.}}
</div>


==== random_chance (Zufallschance) ====
{{Anker|random_chance|Zufallschance}}
<div class="treeview">
* '''random_chance''' - Prüft, ob eine Zufallszahl zwischen 0.0 und 1.0 kleiner als ein angegebener Wert ist.
* '''random_chance''' - Prüft, ob eine Zufallszahl zwischen 0.0 und 1.0 kleiner als ein angegebener Wert ist.
** {{NBT|float}}{{NBT|compound|chance}}: Erfolgsquote als Zahl 0.0–1.0.
** {{NBT|float|chance}}: Erfolgsquote als Zahl 0.0–1.0.
</div>


* '''random_chance_with_looting''' - Überprüft ob die Zufallszahl von 0.0–1.0 ist weniger als eine angegebene Variable, beeinflusst vom Level der von [[Plünderung]] auf die <code>killer</code> Entität.
==== random_chance_with_enchanted_bonus (Zufallschance mit verzauberter Beute) ====
** {{NBT|float|chance}}: Basiserfolgsrate.
{{Anker|random_chance_with_enchanted_bonus|Zufallschance mit verzauberter Beute}}
** {{NBT|float|looting_multiplier}}: Anpassung der Plünderung zur Basis-Erfolgsrate. Formel ist <code>chance + (looting_level * looting_multiplier)</code>.
<div class="treeview">
* '''random_chance_with_enchanted_bonus''' - Generiert eine Zufallszahl zwischen 0,0 und 1,0 und prüft, ob sie kleiner ist als der Wert, der anhand der Stufe einer bestimmten Verzauberung ermittelt wurde. Erfordert eine <code>attacker</code>-Kreatur, die durch den [[Beutekontext]] bereitgestellt wird. Wenn sie nicht bereitgestellt wird, wird die Verzauberungsstufe als 0 betrachtet.
** {{NBT|float|unenchanted_chance}}: Die Erfolgsrate, die verwendet werden soll, wenn die Verzauberung nicht vorhanden ist; 0,0–1,0.
** {{NBT|float}}{{NBT|compound|enchanted_chance}}: [[Verzauberungsdefinition#Stufenbasierter Wert|Stufenbasierter Wert]]. Die Erfolgsrate basierend auf dem Level, wenn die Verzauberung vorhanden ist; 0,0–1,0.
** {{NBT|string|enchantment}}: Eine Verzauberung (eine ID). Die Verzauberung, deren Level für die Wahrscheinlichkeitsberechnung verwendet werden soll. Wenn die Verzauberung nicht vorhanden ist, wird <code>0</code> als Level verwendet.
</div>


* '''reference''' - Überprüft ob eine andere referenzierte Bedingung (predicate) besteht.
==== reference (Verknüpfung) ====
** {{NBT|string|name}}: Der [[Namensraum]] ID von der Bedingung (predicate) referenziert wurde. Zyklisch referenziert führt zu einen Fehler.
{{Anker|reference|Verknüpfung}}
<div class="treeview">
* '''reference''' - Überprüft ob eine andere referenzierte Bedingung (<code>predicate</code>) besteht.
** {{NBT|string|name}}: Der [[Namensraum]] ID von der Bedingung (<code>predicate</code>) referenziert wurde. Zyklisch referenziert führt zu einen Fehler.
</div>


* '''survives_explosion''' - Gibt <code>true</code> mit einer Wahrscheinlichkeit von 1/Explosionsradius zurück.
==== survives_explosion (Explosionsüberleben) ====
{{Anker|survives_explosion|Explosionsüberleben}}
<div class="treeview">
* '''survives_explosion''' - Gibt <code>true</code> mit einer Wahrscheinlichkeit von <code>1/Explosionsradius</code> zurück.
</div>


==== table_bonus (Beutetabellenbonus) ====
{{Anker|table_bonus|Beutetabellenbonus}}
<div class="treeview">
* '''table_bonus''' - Besteht mit der Wahrscheinlichkeit ausgewählt aus Beutetabelle, ausgehend von Verzauberungsstufe.
* '''table_bonus''' - Besteht mit der Wahrscheinlichkeit ausgewählt aus Beutetabelle, ausgehend von Verzauberungsstufe.
** {{NBT|string|enchantment}}: ID der Verzauberung.
** {{NBT|int|enchantment}}: ID der Verzauberung.
** {{NBT|list|chances}}: Liste der Wahrscheinlichkeiten für die Verzauberungsstufe, ausgehend von 0.
** {{NBT|list|chances}}: Liste der Wahrscheinlichkeiten für die Verzauberungsstufe, ausgehend von 0.
</div>


==== time_check (Zeitüberprüfung) ====
{{Anker|time_check|Zeitüberprüfung}}
<div class="treeview">
* '''time_check''' - Prüft die aktuelle Uhrzeit.
* '''time_check''' - Prüft die aktuelle Uhrzeit.
** {{NBT|int|value}}: Die Zeit in Ticks.
** {{NBT|compound|value}}
** {{NBT|compound|value}}
*** {{NBT|compound}}{{NBT|int|max}}: Maximalwert.
*** {{NBT|int|max}}: Maximalwert.
*** {{NBT|compound}}{{NBT|int|min}}: Minimalwert.
*** {{NBT|int|min}}: Minimalwert.
** {{NBT|int|value}}: Die Zeit in Ticks.
** {{NBT|int|period}}: Falls vorhanden wird die Zeit durch Modulo-Division (%= , Rest der Division von) um diesen Wert (Als Beispiel, falls auf 24000 gesetzt wurde, Wert wird auf eine Zeit gesetzt in Periode von Minecraft-Tagen).
** {{NBT|int|period}}: Falls vorhanden wird die Zeit durch Modulo-Division (%= , Rest der Division von) um diesen Wert (Als Beispiel, falls auf 24000 gesetzt wurde, Wert wird auf eine Zeit gesetzt in Periode von Minecraft-Tagen).
</div>


* '''weather_check ''' - Prüft auf einen aktuellen Wetterzustand.
==== value_check (Wertüberprüfung) ====
** {{NBT|boolean|raining}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es regnet.
{{Anker|value_check|Wertüberprüfung}}
** {{NBT|boolean|thundering}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es gewittert.
<div class="treeview">

* '''value_check''' - Prüft einen Wertebereich.
* '''value_check''' - Prüft einen Wertebereich.
** {{NBT|int}}{{NBT|compound|value}}: [[Beutetabellen#Zahlenanbieter|Darstellung von Wertebereichen]]. Der Wert, der überprüft werden soll.
** {{NBT|int}}{{NBT|compound|value}}: [[Beutetabellen#Darstellungen%20von%20Wertebereichen|Darstellung von Wertebereichen]]. Der Wert, der überprüft werden soll.
** {{NBT|int|range}}: Der genaue Wert, der überprüft werden soll.
** {{NBT|compound|range}}: Der Bereich, in dem der Wert geprüft wird.
** {{NBT|compound|range}}: Der Bereich, in dem der Wert geprüft wird.
*** {{NBT|int}}{{NBT|compound|min}}: Minimal-Wert.
*** {{NBT|int}}{{NBT|compound|min}}: [[Beutetabellen#Darstellungen von Wertebereichen|Darstellung von Wertebereichen]]. Minimal-Wert.
*** {{NBT|int}}{{NBT|compound|max}}: Maximal-Wert.
*** {{NBT|int}}{{NBT|compound|max}}: [[Beutetabellen#Darstellungen von Wertebereichen|Darstellung von Wertebereichen]]. Maximal-Wert.
** {{NBT|int|range}}: Der genaue Wert, der überprüft werden soll.
</div>

==== weather_check (Wetterüberprüfung) ====
{{Anker|weather_check|Wetterüberprüfung}}
<div class="treeview">
* '''weather_check ''' - Prüft auf einen aktuellen [[Wetter]]zustand.
** {{NBT|boolean|raining}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es regnet.
** {{NBT|boolean|thundering}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es gewittert.
</div>
</div>


== Beispiele ==
== Beispiele ==
=== Beispiel 1 ===
{|class="wikitable"
:Die Datei ''.minecraft/saves/meinewelt/datapacks/meinpaket/data/meinedaten/predicates/unterordner/eisenhand.json'' könnte so aussehen:
! Eigenschaft
! Beispiel
|-
| <code>entity_properties</code>
|
:<code>data/wiki/predicate/eisenhand.json</code>
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
"condition": "minecraft:entity_properties",
"condition": "minecraft:entity_properties",
"entity": "this",
"entity": "this",
"predicate": {
"predicate": {
"equipment": {
"equipment": {
"mainhand": {
"mainhand": {
"items": "minecraft:iron_sword"
"item": "minecraft:iron_sword"
}
}
}
}
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
:Überprüft ob die Kreatur ein Eisenschwert in der Hand hält. In Kombination mit den unteren Befehl wird jeder Kreatur, die ein Eisenschwert in der Hand hält, es entfernt.
:Überprüft ob die Kreatur ein Eisenschwert in der Hand hält. In Kombination mit den unteren Befehl wird jeder Kreatur, die ein Eisenschwert in der Hand hält, es entfernt.
:<code>/clear @e[predicate=wiki:eisenhand] minecraft:iron_sword</code>
<code>/clear @e[predicate=meinedaten:unterordner/eisenhand] minecraft:iron_sword</code>

|-
=== Beispiel 2 ===
| <code>location_check</code>
:Die Datei ''.minecraft/saves/meinewelt/datapacks/meinpaket/data/meinedaten/predicates/unterordner/hexenhuette.json'' könnte so aussehen:
|
:<code>data/wiki/predicate/hexenhuette.json</code>
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
"condition": "minecraft:location_check",
"condition": "minecraft:location_check",
"predicate": {
"predicate": {
"biomes": "minecraft:swamp",
"biome": "minecraft:swamp",
"structures": "minecraft:swamp_hut",
"feature": "swamp_hut",
"dimension": "minecraft:overworld"
"dimension": "minecraft:overworld"
}
}
}
}
</syntaxhighlight>
</syntaxhighlight>
:Überprüft ob sich die Kreatur im Sumpf, in der Boundingbox der Sumpfhütte befindet. In Kombination mit den unteren Befehl wird jeder Kreatur, außer der Hexe die sich in der Boundingbox der Sumpfhütte befindet der Statuseffekt Vergiftung gegeben.
:Überprüft ob sich die Kreatur im Sumpf, in der Boundingbox der Sumpf-Hütte befindet. In Kombination mit den unteren Befehl wird jeder Kreatur, außer der Hexe die sich in der Boundingbox der Sumpfhütte befindet der Statuseffekt Vergiftung gegeben.
:<code>/effect give @e[predicate=wiki:hexenhuette,type=!minecraft:witch] minecraft:poison</code>
<code>/effect give @e[predicate=meinedaten:unterordner/hexenhuette,type=!minecraft:witch] minecraft:poison</code>

|-
=== Beispiel 3 ===
| <code>weather_check</code>
:Die Datei ''.minecraft/saves/meinewelt/datapacks/meinpaket/data/meinedaten/predicates/unterordner/wetter.json'' könnte so aussehen:
|
:<code>data/wiki/predicate/wetter.json</code>
<syntaxhighlight lang="json">
<syntaxhighlight lang="json">
{
{
"condition": "minecraft:weather_check",
"condition": "minecraft:weather_check",
"raining": true,
"raining": true,
"thundering": false
"thundering": false
}
}
</syntaxhighlight>
</syntaxhighlight>
:Überprüft, ob es regnet. In Kombination mit den unteren Befehlen wird das Regenwetter immer auf 1000 Sekunden gesetzt.
:Überprüft, ob es regnet. In Kombination mit den unteren Befehlen wird das Regenwetter immer auf 1000 Sekunden gesetzt.
:<code>/execute if predicate wiki:wetter run weather rain 1000</code>
<code>/execute if predicate meinedaten:unterordner/wetter unless score x y matches 1 run weather rain 1000</code><br>
<code>/execute if predicate meinedaten:unterordner/wetter run scoreboard players set x y 1</code></br>
|}


== Externe Links ==
== Hilfsgeneratoren ==
*Siehe [https://misode.github.io/predicate/ misode.github.io]
[https://misode.github.io/predicate/ misode.github.io]


== Geschichte ==
== Geschichte ==
Zeile 286: Zeile 169:
|group1= {{ver|1.15|19w38a}}
|group1= {{ver|1.15|19w38a}}
|list1= *Prädikate innerhalb von [[Datenpaket]]en hinzugefügt.
|list1= *Prädikate innerhalb von [[Datenpaket]]en hinzugefügt.
|group2= {{ver|1.16|20w12a}}
|group2= {{ver|1.19|22w14a}}
|list2= *Die Felder <code>player</code>, <code>fishing_hook</code>, <code>lightning_bolt</code> und <code>catType</code> wurden durch <code>type_specific</code> ersetzt.
|list2= *Unterprädikat „<code>fishing_hook</code>“ zum Kreatur-Prädikat hinzugefügt, um die Eigenschaften des Angelhakens zu prüfen.
*<code>type_specific</code> hat einen Feldtyp (einen von <code>player</code>, <code>fishing_hook</code>, <code>lightning_bolt</code> und <code>cat</code>) und dieselben Felder wie die entfernten Felder.
|group3= {{ver|1.19}}
|group3= {{ver|1.20|23w18a}}
|list3=
|list3= *Bedingung <code>alternative</code> wird in <code>any_of</code> umbenannt.
{{Geschichtlich
|untergruppe=1
|group1= {{ver|version|22w11a}}
|list1= *Unter <code>location_check</code> wird das Feld <code>feature</code> in <code>structure</code> umbenannt.
|group2= {{ver|version|22w14a}}
|list2= *Die Felder <code>player</code>, <code>fishing_hook</code>, <code>lightning_bolt</code> und <code>catType</code> werden durch <code>type_specific</code> ersetzt.
*<code>type_specific</code> hat einen Feld <code>type</code> (einen von <code>player</code>, <code>fishing_hook</code>, <code>lightning_bolt</code> und <code>cat</code>) und dieselben Felder wie die entfernten Felder.
}}
|group4= {{ver|1.19.3|23w06a}}
|list4= *Die Felder <code>is_projectile</code>, <code>is_explosion</code>, <code>bypasses_armor</code>, <code>bypasses_invulnerability</code>, <code>bypasses_magic</code>, <code>is_fire</code>, <code>is_magic</code>, <code>is_lightning</code> werden aus <code>damage_source_properties</code> entfernt.
*Ein neues Array <code>tags</code> wird zu <code>damage_source_properties</code> hinzugefügt. Jeder Eintrag hat zwei Felder:
**<code>id</code>: Die ID eines Schadenstyp-Tags.
**<code>expected</code>: Ob der Schaden das Tag haben soll oder nicht, damit das Prädikat übereinstimmt.
|group5= {{ver|1.20|23w18a}}
|list5= *Bedingung <code>alternative</code> wird in <code>any_of</code> umbenannt.
*Neue Bedingung <code>all_of</code> hinzugefügt, die nur erfüllt ist, wenn alle Unterbedingungen erfüllt sind, mit derselben Syntax wie <code>any_of</code>.
*Neue Bedingung <code>all_of</code> hinzugefügt, die nur erfüllt ist, wenn alle Unterbedingungen erfüllt sind, mit derselben Syntax wie <code>any_of</code>.
|group6= {{ver|1.20.5}}
|list6=
{{Geschichtlich
|untergruppe=1
|group1= {{ver|version|24w09a}}
|list1= *Das Prädikatformat für Gegenstände wird aktualisiert:
**Das Feld „<code>tag</code>“ wird entfernt.
**Das Feld „<code>items</code>“ unterstützt jetzt einen einzelnen Eintrag, ein mit Hash-Präfix versehenes Element-Tag oder eine Liste von Elementen.
*„<code>potion</code>“ wird in „<code>potions</code>“ umbenannt und unterstützt einen einzelnen Eintrag, ein mit Hash-Präfix versehenes Trank-Tag oder eine Liste von Tränken.
**Das Prädikat „<code>nbt</code>“ wird in „<code>custom_data</code>“ umbenannt und entspricht jetzt der Komponente „<code>minecraft:custom_data</code>“.
**Ein neues optionales Feld „<code>components</code>“ entspricht genauen Komponenten.
*Das Prädikatformat für Blöcke wird aktualisiert:
**Das Feld „<code>tag</code>“ wird entfernt.
**Das Feld „<code>blocks</code>“ unterstützt jetzt einen einzelnen Eintrag, ein mit Hash-Präfix versehenes Block-Tag oder eine Liste von Blöcken.
*Das Format für Flüssigkeits-Prädikate wird aktualisiert:
**Das Feld „<code>tag</code>“ wird entfernt. *<code>fluid</code> wird in <code>fluids</code> umbenannt und unterstützt einen einzelnen Eintrag, ein mit Hash-Präfix versehenes Fluid-Tag oder eine Liste von Fluiden.
*Das Kreaturtyp-Prädikatformat wird aktualisiert:
**Das Feld <code>type</code> unterstützt jetzt einen einzelnen Eintrag, ein mit Hash-Präfix versehenes Entity-Typ-Tag oder eine Liste von Entity-Typen.
*Das Standort-Prädikatformat wird aktualisiert:
**<code>biome</code> wird in <code>biomes</code> umbenannt und unterstützt einen einzelnen Eintrag, ein mit Hash-Präfix versehenes Biom-Tag oder eine Liste von Biomen.
**<code>structure</code> wird in <code>structures</code> umbenannt und unterstützt einen einzelnen Eintrag, ein mit Hash-Präfix versehenes Struktur-Tag oder eine Liste von Strukturen.
|group2= {{ver|version|24w10a}}
|list2= *Es wird das Kreatur-Unterprädikat <code>slots</code> hinzugefügt, die verwendet werden, um einzelne oder mehrere [[Inventarplatz|Slots]] einer beliebigen Kreatur zu prüfen.
|group3= {{ver|version|24w11a}}
|list3= *Kreatur-Unterprädikat <code>any</code> entfernt.
*Komponentenspezifische Gegenstandsprädikateigenschaften werden in ein separates Feld <code>predicates</code> verschoben.
*Das Format der [[Gegenstands-Unterprädikate]] wird aktualisiert:
**Einige Felder des Gegenstandsprädikats werden in eine Karte in einem optionalen Feld <code>predicates</code> verschoben.
**Die Felder <code>enchantments</code>, <code>stored_enchantments</code>, <code>potions</code>, <code>custom_data</code> werden jeweils in die Unterprädikate <code>minecraft:enchantments</code>, <code>minecraft:stored_enchantments</code>, <code>minecraft:potion_contents</code>, <code>minecraft:custom_data</code> verschoben.
**Das Feld <code>durability</code> wird zum Prädikat <code>damage</code> erweitert.
**Prädikate <code>enchantments</code>, <code>stored_enchantments</code>, <code>potion_contents</code>, <code>damage</code> erfordern, dass passende Komponenten vorhanden sind.
}}
|group7= {{ver|1.21}}
|list7=
{{Geschichtlich
|untergruppe=1
|group1= {{ver|version|24w18a}}
|list1= *<code>random_chance_with_looting</code> wird in <code>random_chance_with_enchanted_bonus</code> umbenannt, das Feld <code>chance</code> wird von einem Float in einen Level-basierten Wert geändert, das Feld <code>looting_multiplier</code> wird entfernt und ein Feld <code>enchantment</code> wird hinzugefügt.
*Das Feld <code>chance</code> von <code>random_chance</code> wird von einem Float in einen Zahlenanbieter geändert.
*Ein Feld <code>can_see_sky</code> wird zu Standortprädikaten hinzugefügt.
*<code>enchantment</code> wird in den [[Gegenstands-Unterprädikate]]n <code>minecraft:enchantments</code> in <code>enchantments</code> umbenannt; akzeptiert mehrere mögliche Verzauberungen oder Aliase.
*Änderungen am Kreaturprädikat:
**Flags <code>is_on_ground</code> und <code>is_flying</code> werden zum Flags-Unterprädikat hinzugefügt.
**Unterprädikat <code>movement</code> hinzugefügt.
**Unterprädikat <code>periodic_ticks</code> hinzugefügt.
*Beutekontext-Entitäten umbenannt: <code>killer</code> umbenannt in <code>attacker</code>; <code>direct_killer</code> umbenannt in <code>direct_attacker</code>; <code>killer_player</code> umbenannt in <code>attacking player</code>.
|group2= {{ver|version|24w19a}}
|list2= *Neues Feld <code>is_direct</code> in die Bedingung <code>damage_source_properties</code> hinzugefügt.
|group3= {{ver|version|24w21a}}
|list3= *[[Gegenstands-Unterprädikate|Gegenstands-Unterprädikat]] <code>jukebox_playable</code> hinzugefügt.
*Das Feld <code>gamemode</code> des <code>player</code>-Prädikats akzeptiert eine Liste von Spielmodi statt einer einzelnen Zeichenfolge.
*Der Ordner wird von {{JSON|ordner|predicates}} zu {{JSON|ordner|predicate}} geändert.
|group4= {{ver|version|1.21-pre1}}
|list4= *Die Prädikate werden von <code>chance</code> in <code>unenchanted_chance</code> und <code>enchanted_chance</code> in der Bedingung <code>random_chance_with_enchanted_bonus</code> aufgeteilt.
}}
|group8= {{ver|1.21.2}}
|list8=
{{Geschichtlich
|untergruppe=1
|group1= {{ver|version|24w35a}}
|list1= *Neues Kreaturunterprädikat <code>minecraft:sheep</code> hinzugefügt: <code>sheared</code> und <code>color</code>.
|group2= {{ver|version|24w36a}}
|list2= *Ein neues Feld <code>input</code> im Unterprädikat <code>player</code> wird hinzugefügt, mit dem erkannt werden kann, welche Bewegungstasten der Spieler drückt.
**Es werden <code>forward</code>, <code>backward</code>, <code>left</code>, <code>right</code>, <code>jump</code>, <code>sneak</code> und <code>sprint</code> hinzugefügt.
|group3= {{ver|version|24w37a}}
|list3= *Kreaturunterprädikat <code>minecraft:salmon</code> hinzugefügt: <code>variant</code>.
|group4= {{ver|version|24w39a}}
|list4= *Das Objektunterprädikat <code>minecraft:boat</code> wird entfernt, da es für Boote keine gesonderten Varianten-Eigenschaften mehr gibt.
}}
|group9= {{ver|1.21.5}}
|list9=
{{Geschichtlich
|untergruppe=1
|group1= {{ver|version|25w03a}}
|list1= *Dem Kreaturprädikat wird ein neues optionales Feld hinzugefügt: <code>components</code>.
*Mehrere Kreaturprädikate werden entfernt und durch eine Kombination aus dem Prädikat <code>components</code> und unterschiedlichen Kreaturkomponenten ersetzt.
*Das Feld <code>color</code> wird aus dem Unterprädikat <code>minecraft:sheep</code> entfernt.
|group2= {{ver|version|25w07a}}
|list2= *Das Kreaturprädikat <code>stepping_on</code> kann nur dann als <code>true</code> ausgewertet werden, wenn sich die Kreatur auf dem Boden befindet.
|group3= {{ver|version|25w10a}}
|list3= *Den Blockprädikaten werden neue optionale Felder hinzugefügt: <code>components</code> und <code>predicates</code>.
*Den Kreaturprädikaten werden neue optionale Felder hinzugefügt: <code>components</code> und <code>predicates</code>.
}}
}}
}}


Mit dem Speichern dieser Seite versicherst du, dass du den Beitrag selbst verfasst hast bzw. dass er keine fremden Rechte verletzt, sowie dass er die Benutzungsbestimmungen von Weird Gloop Ltd. nicht verletzt. Inhalte, die von Mojang Studios der breiten Öffentlichkeit zur Verfügung gestellt werden, können verwendet werden, wobei alle Rechte bei Mojang bleiben.

Deine Änderungen werden unter der Lizenz CC BY-NC-SA 3.0 veröffentlicht und können von anderen beliebig abgeändert werden. Nähere Informationen sind unter Minecraft Wiki:Urheberrechte zu finden.

Speichere keine urheberrechtlich geschützten Werke ohne Genehmigung!

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)
Bitte beachte:
  • Wenn Du nicht möchtest, dass Dein Text weiterbearbeitet und weiterverbreitet wird, dann speichere ihn nicht.
  • Bitte hinterlasse eine kurze Zusammenfassung Deiner Änderungen, damit andere Autoren sie besser verstehen können.
  • Bitte benutze die Vorschau anzeigen-Schaltfläche, bevor Du die Änderungen speicherst. Das mindert die Länge der Änderungen auf der Letzte Änderungen-Seite.

Folgende Vorlagen werden auf dieser Seite verwendet: