Minecraft Wiki

Mojang-studios-horizontal.svg Frist zur Mojang-Konto-Migration verpasst ?
Kein Problem, bis zum 18. Dezember 2023 gibt es noch eine andere Möglichkeit.

MEHR ERFAHREN

Minecraft Wiki
Advertisement

Funktionen sind Skripte, die eine beliebige Anzahl von Befehlen beinhalten.

Funktionsdateien

Funktionen werden im Weltordner unter /data/functions/<Namensraum> als Textdateien mit der Endung <Dateiname>.mcfunction gespeichert. Diese Dateien lassen sich mit einem Texteditor wie beispielsweise Notepad++ bearbeiten.

Jede einzelne Zeile in der Datei steht für einen Befehl. Dabei muss der Schrägstrich, der bei Eingabe eines Befehls in den Chat benötigt wird, weggelassen werden. Im Gegensatz zu Befehlsblöcken gibt es in Funktionsdateien keine Begrenzung für die Länge von Befehlen. Desweiteren können Zeilen auskommentiert werden, indem man an den Anfang der Zeile eine Raute # schreibt, d. h. diese Zeile wird dann nicht mehr vom Spiel beachtet.

Wird eine Funktionsdatei verändert oder hinzugefügt, während die Welt, zu der die Funktion gehört, geladen ist, müssen alle Funktionen durch den Befehl /reload neu geladen werden, damit die Änderungen wirksam sind.

Funktionsname

Der Name einer Funktion lautet normalerweise <Namensraum>:<Dateiname>. Funktionen können aber auch innerhalb eines Namensraum-Ordners weiterhin in Unterordner unterteilt sein, der Name der Funktionsdatei /data/functions/wiki/pfad/zur/funktionsdatei/funktion.mcfunction lautet dann beispielsweise wiki:pfad/zur/funktionsdatei/funktion.

Aufruf

Es gibt derzeit drei Möglichkeiten, Funktionen aufzurufen.

Befehl

Funktionen können mit dem Befehl /function <Funktion> aufgerufen werden. Es ist ebenfalls möglich, eine Funktion nur bedingt aufzurufen, näheres siehe dort. Die Befehle in einer Funktion werden in einem einzelnen Tick ausgeführt, auch wenn innerhalb der Funktion weitere Funktionen aufgerufen werden.

Befehle, die innerhalb einer Funktion ausgeführt werden, halten sich an die Befehls-Begrenzung die durch den Befehl /gamerule maxCommandChainLength angegeben werden kann. Standardmäßig sind es 65536 Befehle, die eine Funktion maximal ausführt.

Spielregel

Man kann mit dem Befehl /gamerule gameLoopFunction eine Funktion festlegen, die in jedem Tick einmal ausgeführt werden. Wenn man damit mehrere Funktionen gleichzeitig ausführen lassen möchte, muss man mit der mit dieser Spielregel festgelegten Funktion weitere Funktionen aufrufen.

Fortschritte

Benutzerdefinierte Fortschritte können eine Funktion einmal als Belohnung für das Erzielen eines Fortschritts ausführen. Die Befehle in der Funktion werden durch den Spieler ausgeführt, der den Fortschritt abgeschlossen hat.

Vor- und Nachteile

Da es sich bei den Funktionsdateien um einfache Textdateien handelt, lassen sich Befehle einfacher bearbeiten als beispielsweise in Befehlsblöcken. Allerdings kann man nicht einfach überprüfen, ob ein vorausgegangener Befehl erfolgreich war oder nicht, dafür muss man beispielsweise den Befehl /stats oder den Befehl /scoreboard verwenden.

Geschichte

Vor der Entwicklungsversion 1.12-pre1 hieß der Belohnungspunkt unter den Fortschrittsdateien statt „function“ einfach „commands“ dort wurden alle Befehle direkt eingetragen, so wie es bei den jetzigen Funktionsdateien der Fall ist, mit dem Unterschied das diese „Belohnungen“ mit dem Befehl /advancement direkt aufgerufen werden mussten.

Versionsgeschichte der Java Edition
Vollversion 1.12
1.12-pre1
  • Funktionen hinzugefügt; sie sind durch den neuen Befehl /function ausführbar
1.12-pre3
  • Man kann Zeilen in Funktionen nicht mehr durch // auskommentieren, sondern nur noch durch #
  • Der Schrägstrich vor Befehlen muss in der Funktionsdatei nun weggelassen werden
1.12-pre4
1.12-pre6
  • Wird eine bedingte Funktion übersprungen, zählt das nun als Fehler
Advertisement