Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter   Noch keinen Server gefunden? Es gibt einen Wiki-Server

Funktion

Aus Minecraft Wiki
Wechseln zu: Navigation, Suche

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

Funktionsdateien[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Es gibt derzeit drei Möglichkeiten, Funktionen aufzurufen.

Befehl[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

Vor der Entwicklungsversion 1.12-pre1 hieß die Belohnung in den Fortschrittsdaten statt „function“ einfach „commands“. Dort konnten mehrere Befehle in einer JSON-Liste eingetragen werden. Diese Befehle wurden beim Erhalten eines Fortschritts nacheinander ausgeführt. Da die Fortschritte anschließend ausgenutzt wurden, um damit mehrere Befehle in einen einzigen Befehl /advancement zu vereinfachen, wurden diese Befehlslisten kurzerhand von den Entwicklern in Funktionen ausgelagert, um ein praktischeres System zur Verfügung zu stellen.