Mit einem Befehl können Veränderungen am Spielgeschehen außerhalb des eigentlichen Spiels hervorgerufen werden. Dabei sind nicht immer alle Befehle für jeden Spieler zugänglich. Manche Befehle sind nur exklusiv in der Java Edition oder in der Bedrock Edition verfügbar.
Nutzbarkeit[]
Voraussetzungen zum Nutzen des Befehls:
- Einzelspieler: Diesen Befehl kann man im Einzelspieler-Modus nutzen.
- Mehrspieler: Diesen Befehl kann man im Mehrspieler-Modus nutzen. Die Veröffentlichung einer Einzelspieler-Welt im LAN ("LAN-Welt") zählt nicht als Mehrspieler, da dies kein Serverbetrieb ist.
- Cheat: Dieser Befehl kann das Spiel verändern und wird daher Cheat (engl. für Mogelei) genannt. Um ihn benutzen zu können, muss man im Einzelspieler-Modus vor der Weltgenerierung die Option "Cheats erlauben" einschalten bzw. bei der Veröffentlichung im LAN einstellen. Im Mehrspieler-Modus muss man Operator-Rechte haben. Um den Befehl auszuführen benötigt man mindestens das angegebene Operator-Level, siehe dazu ops.json. Im Mehrspieler-Modus werden automatisch alle Spieler über einen eingegebenen Operator-Befehl informiert.
- Befehlsblock-Befehl: Dieser Befehl setzt ein Operator-Level von maximal 2 voraus und kann daher von Befehlsblöcken, Befehlsblockloren und Funktionen verwendet werden.
Auf den meisten Minecraft-Servern kommen außerdem sog. Plugin-Befehle zum Einsatz, welche die Verwaltung, die Aufrechterhaltung und z.B. das Aufspüren von Unruhestiftern enorm erleichtern. Diese Art von Befehl existiert nicht in der Vanilla-Version von Minecraft, daher wird sie hier auch nicht behandelt.
Befehlsquelle[]
Ein Befehl kann von unterschiedlichen Befehlsquellen ausgeführt werden. Die Position der Befehlsquelle ist entscheidend bei der Eingabe von relativen Koordinaten. Folgende Befehlsquellen sind möglich:
- Eingabe in der Chat-Konsole durch einen Spieler. Um den Befehl von einem Chat-Text zu unterscheiden, muss er mit einem führenden Schrägstrich / gekennzeichnet werden. Um die Chat-Konsole zu öffnen, drückt man entweder die Chattaste T oder die Befehlstaste -, die den benötigten Schrägstrich gleich vorgibt.
- Eingabe in der Server-Konsole. Dort kann ein Befehl ohne vorangestellten Schrägstrich eingegeben werden, weil ein direktes Chatten nicht direkt möglich ist. Indirekt funktioniert es mit Befehlen, wie zum Beispiel dem Befehl
/say
, der Absender wird im Chat als "[Server]" angezeigt. Der Server ist kein Objekt in der Welt. Er kann keine Befehle mit dem @s-Selektor ausführen. - Hinterlegung in einem Befehlsblock. Der Befehl wird je nach Einstellung entweder ausgeführt, sobald dieser durch ein Redstone-Signal aktiviert wird oder dauerhaft, falls er auf "Immer aktiv" geschaltet ist (siehe Befehlsblock#Bedienung). Wenn es ein Wiederhol-Befehlsblock ist, wird der Befehl ein mal pro Game-Tick ausgeführt. Auch im Befehlsblock ist der Schrägstrich optional.
- Hinterlegung in einer Befehlsblocklore. Dadurch wird der Befehl mobil und kann mit der Lore an einen beliebigen Ort gefahren werden, der mit dem Schienennetz verbunden ist. Der Befehl wird ausgeführt, wenn die Lore über eine Aktivierungsschiene fährt. Der Schrägstrich ist optional.
- Hinterlegung in einer Funktion, die in einem Datenpaket abgespeichert ist. Die Anzahl der Befehle ist unbegrenzt und Funktionen sind im Gegensatz zu Befehlsblöcken unabhängig von geladenen Chunks. Der Schrägstrich muss hier weggelassen werden. Die Befehlsquelle ist der Aufrufer der Funktion.
- Erreichen eines Fortschritts, in dessen Fortschrittsdaten eine Funktion eingetragen ist. Die Befehlsquelle ist der Spieler, der den Fortschritt erhält.
- Mit jedem Tick, wenn im Funktions-Alias minecraft:tick eine oder mehrere Funktionen eingetragen sind. Die Befehlsquelle ist der Server (siehe Server-Konsole weiter oben in der Liste).
- Verwendung eines JSON-Textes im Befehl
/tellraw
. Damit kann eine Nachricht über den Chat gesendet werden, die einen oder mehrere anklickbare Textteile enthält, die jeweils einen Befehl ausführen. Der Schrägstrich muss im JSON-Text angegeben werden. Die Befehlsquelle ist der Spieler, der den Text anklickt und somit den Befehl ausführt. - Durch Verwendung eines JSON-Textes in einem Schild. Wenn der JSON-Text anklickbare Textteile enthält, wird dadurch das Schild anklickbar und löst dann alle Befehle aus. Die Befehlsquelle ist der Spieler, der das Schild anklickt.
- Verwendung eines JSON-Textes in einem beschriebenen Buch. Dadurch ist der Befehl mobil und kann überall hin getragen werden. Durch Anklicken eines Textteils im Buch wird der Befehl ausgelöst. Die Befehlsquelle ist der Spieler, der das Buch anklickt.
Wenn ein Befehl einen Block oder ein Objekt in der Welt verändert, muss der Block bzw. das Objekt geladen sein, sonst wird eine Fehlermeldung ausgegeben.
Übersicht[]
Befehl | Beschreibung |
---|---|
/datapack
|
Verwaltet Datenpakete. |
/debug
|
Startet oder stoppt das Schreiben eines Debug-Protokolls. |
/function
|
Führt eine Liste von Befehlen bzw. einen Funktions-Alias aus, die sich in einer mcfunction-Datei befinden. |
/help
|
Listet einen oder mehrere Befehle mit ihrer Syntax auf. |
/jfr
|
Startet oder stoppt das JFR-Protokolls. |
/locate
|
Zeigt die Koordinaten des nächstgelegenen Bauwerks, Bioms und Arbeitsplatzblocks an. |
/perf
|
Startet oder stoppt das Schreiben eines Debug-Protokolls. |
/reload
|
Lädt Datenpakete erneut. |
/return
|
Verändert den Rückgabe-Wert von Funktionen |
/scoreboard
|
Verwaltet selbst definierte Punktestände. |
/seed
|
Nennt den Startwert der Welt. |
Befehl | Beschreibung |
---|---|
/me
|
Sendet im Chat den Namen des Versenders zusammen mit einem Aktionstext. |
/msg
|
Sendet im Chat eine Nachricht an einen Spieler (flüstern genannt). |
/say
|
Sendet im Chat eine Nachricht an alle Spieler. |
/tell
|
Identisch mit /msg .
|
/teammsg
|
Sendet im Chat eine Nachricht an alle Spieler des selben Teams. |
/tm
|
Identisch mit /teammsg .
|
/tellraw
|
Sendet im Chat eine Nachricht an einen Spieler, die formatiert und Maus-sensitiv sein kann. |
/w
|
Identisch mit /msg (engl. whisper).
|
Befehl | Beschreibung |
---|---|
/advancement
|
Gibt dem Spieler einen Fortschritt. |
/attribute
|
Ändert ein Attribut des Wesens. |
/bossbar
|
Zeigt dem Spieler eine Bossleiste an. |
/clear
|
Entfernt Gegenstände aus dem Inventar des Spielers. |
/damage
|
Fügt Wesen ein eingestellten Schaden zu. |
/data
|
Verändert die Eigenschaften einer Kreatur. |
/effect
|
Gibt dem Wesen einen Statuseffekt. |
/enchant
|
Gibt dem Gegenstand, den der Spieler in der Hand hält, eine Verzauberung. |
/execute
|
Lässt von einem Wesen /einer Position einen Befehl ausführen und /oder prüft Bedingungen. |
/experience
|
Gibt oder nimmt dem Spieler Erfahrungspunkte. |
/gamemode
|
Verändert den Spielmodus des Spielers. |
/give
|
Gibt Gegenstände in das Inventar des Spielers. |
/item
|
Ersetzt, modifiziert oder kopiert Gegenstände im Inventar des Wesens. |
/kill
|
Tötet das Wesen sofort. |
/loot
|
Generiert für Wesen /Blöcke Beutetabellen |
/particle
|
Lässt Partikel um ein Wesen /die Position erscheinen. |
/playsound
|
Spielt ein Geräusch für den Spieler ab. |
/recipe
|
Gibt oder nimmt dem Spieler Handwerks-Rezepte. |
/ride
|
Lässt Wesen auf anderen Wesen reiten oder absteigen. |
/scoreboard
|
Verändert Punktestände von Objekten (Wesen oder lebloses Objekt) und /oder von Variablen. |
/spawnpoint
|
Ändert den Spawnpunkt des Spielers. |
/spectate
|
Kann jede beliebige Kreatur im Zuschauermodus beobachten. |
/spreadplayers
|
Verteilt die Wesen innerhalb eines vorgegebenen Bereiches in der Landschaft. |
/stopsound
|
Beendet das Abspielen aller oder eines Geräusches für den Spieler. |
/tag
|
Gibt oder entfernt dem Wesen ein Etikett. |
/team
|
Verwaltet Teams für Objekte (Wesen oder lebloses Objekt) und /oder von Variablen. |
/teleport
|
Teleportiert das Wesen zum Ziel und /oder dreht es. |
/title
|
Zeigt dem Spieler einen Titelbildschirm an. |
/tp
|
Identisch mit Befehl /teleport
|
/trigger
|
Ändert den Punktestand des Spielers. |
/xp
|
Identisch mit /experience .
|
Befehl | Beschreibung |
---|---|
/clone
|
Kopiert/Verschiebt einen ganzen Blockbereich an eine andere Position. |
/data
|
Verändert die Blockobjektdaten eines Blockes in der Welt. |
/defaultgamemode
|
Verändert den Standard-Spielmodus der Welt. |
/difficulty
|
Verändert den Schwierigkeitsgrad der Welt. |
/fill
|
Füllt einen ganzen Blockbereich mit einem bestimmten Block. |
/fillbiome
|
Füllt einen ganzen Blockbereich mit einem bestimmten Biom. |
/forceload
|
Lädt bestimmte Chunks dauerhaft. |
/gamerule
|
Ändert eine Grundeinstellung der Welt. |
/place
|
Platziert ein Merkmal, Bauwerk, Konstruktionsblock- oder Verbundblock-Konstruktion in der Welt. |
/particle
|
Lässt Partikel an einer bestimmten Position in der Welt erscheinen. |
/publish
|
Stellt die Welt zum gemeinsamen Spielen in einem LAN (lokalen Netzwerk) zur Verfügung. |
/item
|
Ersetzt Gegenstände im Inventar eines Behälters. |
/setblock
|
Platziert oder löscht einen Block an einer bestimmten Position in der Welt. |
/setworldspawn
|
Verändert den Spawnbereich der Welt. |
/summon
|
Erschafft ein Objekt (Kreatur etc.). |
/tickingarea
|
Bedrock-exklusiv: Lädt bestimmte Chunks dauerhaft. |
/time
|
Ändert die Weltzeit. |
/toggledownfall
|
Bedrock-exklusiv: Stellt den Niederschlag um. |
/weather
|
Ändert das Wetter in der Welt. |
/worldborder
|
Verändert die Größe der Weltbarriere um die Welt. |
Befehl | Beschreibung |
---|---|
/ban
|
Sperrt einen Spieler dauerhaft vom Server. |
/ban-ip
|
Sperrt eine IP-Adresse dauerhaft vom Server. |
/banlist
|
Zeigt alle gesperrten Spieler oder IP-Adressen des Servers an. |
/deop
|
Entfernt die Operator-Rechte von einem Spieler für diesen Server. |
/kick
|
Entfernt einen aktiven Spieler sofort vom Server. |
/list
|
Listet alle aktiven Spieler des Servers auf. |
/op
|
Gibt Operator-Rechte für diesen Server an einen Spieler. |
/pardon
|
Hebt die Sperre eines Spielers für den Server auf. |
/pardon-ip
|
Hebt die Sperre einer IP-Adresse für den Server auf. |
/save-all
|
Sichert die Welt sofort auf dem Server. |
/save-off
|
Stellt das automatische Sichern der Welt auf dem Server aus. |
/save-on
|
Stellt das automatische Sichern der Welt auf dem Server an. |
/setidletimeout
|
Setzt eine Grenze, wie lange Spieler unbeweglich auf dem Server herumstehen dürfen. |
/stop
|
Stoppt den Server sofort und fährt ihn herunter. |
/whitelist
|
Verwaltung der Gästeliste für den Server. |
Parameter[]
Die meisten Befehle haben zusätzliche Parameter oder Argumente. Ihre Reihenfolge wird durch die Befehlssyntax vorgegeben. Parameter werden immer durch Leerzeichen voneinander getrennt.
Es gibt unterschiedliche Parameterarten. Um sie zu unterscheiden, werden in der Syntax spezielle Metazeichen verwendet. Diese dienen nur zur Erkennung der Parameterart und werden nicht mit eingegeben. Es gibt folgende Parameterarten:
Parameter
ohne spitze Meta-Klammern sind unveränderliche Worte, die genau so eingegeben werden müssen.<Parameter>
mit spitzen Meta-Klammern sind Platzhalter für einen Wert, z. B. für einen Spielernamen oder für Koordinaten.[Parameter]
bzw.[<Parameter>]
mit eckigen Meta-Klammern - egal ob unveränderliches Wort oder Platzhalter - sind optional, d. h. man kann sie zusätzlich eingeben, wenn man möchte.(Parameter|<Parameter>)
bzw.[Parameter|<Parameter>]
mit senkrechten Meta-Strichen sind Alternativen. Die runden Meta-Klammern fassen notwendige Alternativen zusammen, d. h. eine davon muss ausgewählt werden, während eckige Klammern optionale Alternativen zusammenfassen, die weggelassen werden können.
Beispiel:
/time set (day|midnight|night|noon|<time>)
- Der Befehl heißt
/time
. - Der erste Parameter
set
ist ein unveränderliches Wort. - Der zweite Parameter
(day|midnight|night|noon|<time>)
ist eine Auswahl von Alternativen. Die Alternativenday
,midnight
,night
undnoon
sind unveränderliche Worte, während die letzte Alternative<time>
ein Platzhalter für eine Zeitangabe ist. - Bedeutung: Man kann z.B.
/time set day
oder/time set 6000
eingeben.
Eingabehilfe[]
Die Tab ↹-Taste ist bei der Eingabe von Befehlen und Parametern eine große Hilfe, denn sie listet mögliche Eingaben auf und wechselt zwischen ihnen. Dies gilt nicht für die Server-Konsole.
Zur Wiederholung einer Eingabe benutzt man im Chat die ↑-Taste.
Der Befehl /help
zeigt die Syntax für jeden Befehl an. In den meisten Fällen ist es die komplette Syntax, aber nicht immer.
Im Beispiel hat der Befehl /summon
drei Parameter: <entity>
(Objekt), [<pos>]
(optionale Position) und [<nbt>]
(optionale NBT-Daten), wobei der letzte vom /help-Befehl nicht angezeigt wird.
Im Menü/Optionen/Chateinstellungen kann man die "Befehlsvorschläge" einschalten, wodurch bei der Eingabe eines Schrägstriches eine Liste aller verfügbaren Befehle angezeigt wird (im Einzelspielermodus sind die meisten Serverbefehle nicht verfügbar; /kick
und /list
sind vorhanden, aber nicht sehr wirkungsvoll). Ist die Option ausgeschaltet, wird die Auswahlliste nicht angezeigt.
Der Befehle-Parser hat eine automatische Eingabehilfe, die die Eingabe von Befehlen sehr erleichtet. In jeder Auswahlliste kann man mit den Tasten ↓ und ↑ oder mit der Maus eine Auswahl treffen. Dreht man am Mausrad, schiebt sich der Listeninhalt weiter. Ist man in der Liste unten angekommen, führt die Taste ↓ wieder an den Anfang bzw. wenn man am Anfang steht, führt die Taste ↑ zum Ende. Jeder eingegebene Buchstabe verkürzt die Auswahlliste.
Gibt man beispielsweise "/s" ein, sieht man nur noch die Befehle, die mit "/s" beginnen. Der Befehle-Parser prüft den Befehl bereits bei der Eingabe und zeigt ihn rot an, solange er nicht erkannt wird.
Die Taste Tab ↹ vervollständigt die Eingabe automatisch aus der Auswahlliste. Mehrfaches Drücken von Tab ↹ wählt nacheinander die Auswahlen aus der Liste aus. Mit ⇧ Umschalttaste Tab ↹ kommt man wieder zurück, falls man zu oft Tab ↹ gedrückt hat.
Die Leertaste ist für den Befehle-Parser das Zeichen, den nächsten Parameter zu beginnen. Für jeden Parameter zeigt die Eingabehilfe die passende Auswahlliste an.
Im Beispiel ist es eine Liste aller Objekte. Fährt man mit der Maus über einen ID-Namen, wird die Übersetzung in der eingestellten Sprache angezeigt.
Drückt man Esc, wird statt der Auswahlliste der aktuelle und der nächste einzugebende Parameter angezeigt. Um wieder die Auswahlliste zu sehen, geht man ein Zeichen zurück ← und wieder vor →.
Nach der Eingabe des Parameters und erneuter Leertaste zeigt die Eingabehilfe den nächsten Parameter an. Im Beispiel ist es eine Position. Zeigt das Fadenkreuz dabei auf einen Block, sieht man die Hitbox des Blockes und seine Koordinaten werden automatisch vorgeschlagen.
Wenn das Fadenkreuz auf keinen Block zeigt, werden drei Tilden ~ ~ ~ angezeigt, die für die aktuelle Position der Befehlsquelle stehen (hier die Füße des Spielers, der den Befehl im Chat eingibt).
Drückt man Esc, werden wieder der aktuelle und der nächste Parameter angezeigt.
Solange ein Parameter grau dargestellt wird, ist er noch nicht eingegeben. Mit Tab ↹ wird der Vorschlag übernommen. Dann wird der Parameter in einer bestimmten Farbe angezeigt. Die Farben haben immer dieselbe Reihenfolge, unabhängig von der Bedeutung des Parameters: Der erste Parameter ist immer hellblau, der zweite ist gelb, der dritte ist hellgrün etc.
Für die Eingabe von Zielauswahlen gibt es eine Eingabehilfe, die alle Selektoren und die anwesenden Spieler anzeigt. Fährt man mit der Maus über einen Selektor, wird dessen Bedeutung in der eingestellten Sprache angezeigt. Ist der Befehl für Objekte geeignet und zeigt das Fadenkreuz auf ein Objekt, wird dessen UUID mit zur Auswahl gestellt.
Bei der Eingabe von Zielauswahlen kann man Filter verwenden. Auch dafür gibt es eine Eingabehilfe und die Anzeige der Bedeutung, wenn man mit der Maus darüberfährt.
Die Eingabehilfe für Blöcke und Gegenstände zeigt auch die zugehörigen Aliasdaten an, sie beginnen immer mit einem #
.
Blöcke können in einem bestimmten Blockzustand gesetzt werden. Dazu muss man direkt nach dem Block eine eckige Klammer [
öffnen. Die Eingabehilfe zeigt dann die möglichen Blockzustände an. Nach Auswahl eines Blockzustandes zeigt die Eingabehilfe die möglichen Werte für den Blockzustand an. Weitere Blockzustände können nach Eingabe eines Kommas ,
angefügt werden. Die Eingabe wird mit einer eckigen Klammer ]
abgeschlossen.
Blöcke und Gegenstände können mit NBT-Daten eingegeben werden. Die Eingabehilfe zeigt an der entsprechenden Stelle eine geschweifte Klammer {
an. Nach Eingabe der NBT-Daten in Form von SNBT muss man die geschweifte Klammer wieder schließen }
. Wichtig dabei: Blockzustände und NBT-Daten gehören direkt zum Block bzw. Gegenstand, daher darf kein Leerzeichen zwischen dem ID-Namen und den eckigen bzw. geschweiften Klammern sein. Leerzeichen innerhalb der Klammerung sind dagegen erlaubt.
Zielauswahl []
In allen Befehlen, in denen der Parameter <target>
oder <targets>
vorkommt, kann man statt eines konkreten Spielernamens auch alle Spieler oder Spieler mit bestimmten Eigenschaften filtern. Bei einigen Befehlen können sogar Objekte als Ziel ausgewählt werden. Diese Zielauswahl wird vor allem beim Befehlsblock eingesetzt, kann aber ebenso bei einem Befehl in der Chat-Konsole verwendet werden. Dazu ist grundsätzlich einer der fünf Selektoren anzugeben, der wahlweise mit Filtern verbunden werden kann. Die einfache Zielauswahl ist nur im Mehrspielermodus sinnvoll (funktioniert aber auch im Einzelspielermodus). Wenn Filter hinzugefügt werden, ist die Zielauswahl auch im Einzelspielermodus sehr sinnvoll.
Selektoren[]
Selektor | Bedeutung |
---|---|
@p |
Der Spieler (p = player), der der Befehlsquelle (dem Befehlsblock oder dem ausführenden Spieler) am nächsten steht, wird ausgewählt. Äquivalent zu @e[type=player,sort=nearest,limit=1]
|
@a |
Alle Spieler (a = all) werden ausgewählt. Äquivalent zu @e[type=player]
|
@r |
Ein zufälliger Spieler (r = random), oder bei angegebenem type-Filter auch ein anderes Objekt, wird ausgewählt. Äquivalent zu @e[type=player,sort=random,limit=1]
|
@e |
Alle Objekte (e = entity) werden ausgewählt, d.h. alle Spieler, Kreaturen, Fahrzeuge, Drops, fliegende Geschosse etc. |
@s |
Die Befehlsquelle selbst (s = self). Beispiel für einen Spieler oder einen Befehlsblock: /say Mein Name ist @s . Mit dem Befehl /execute können alle gefundenen Objekte als Befehlsquelle dienen, z. B. /execute as @e run say Mein Name ist @s . Nicht ganz äquivalent zu @e[distance=0,sort=nearest,limit=1] , da @s auch ein ausführender Befehlsblock sein kann. Die Server-Konsole kann @s nicht selbst verwenden, da es keine ihr entsprechende Entität in der Welt gibt.
|
Wird die Zielauswahl an Stelle eines <targets>
-Parameters in einem Befehl verwendet, wird der Befehl nacheinander für alle gefundenen Ziele ausgeführt. Wird der Selektor "@e" aber bei einem <target>
-Parameter (Singular) eingesetzt, führt das zu der Meldung "Nur ein Objekt ist erlaubt, aber der angegebene Selektor könnte mehrere liefern", beispielsweise bei /data get entity @e
. In diesem Fall schaltet man den execute-Befehl vor und verwendet im Unterbefehl den @s-Selektor: /execute as @e run data get entity @s
.
Wird die Zielauswahl als Teil einer Chat-Nachricht versendet, wird sie im Nachrichtentext durch eine Liste der gefundenen Ziele ersetzt. Das kann man zum Testen der Zielauswahl nutzen, indem man im Einzelspielermodus die Zielauswahl mit dem Befehl /say
verwendet, z.B. /say @e[tag=MagKekse]
. Im Mehrspielermodus würde man dadurch allerdings eine Chatnachricht an alle Mitspieler senden.
Filter[]
Um eine Zielauswahl mit einem oder mehreren Filtern zu verbinden, schließen diese in eckigen Klammern []
direkt und ohne Leerzeichen an den Selektor an. Die Syntax ist wie folgt: <Selektor>[<Filter>=<Wert>,<Filter>=<Wert>,...]
. Ein Spieler oder Objekt wird gefunden, wenn alle Filterbedingungen erfüllt sind.
Die Filter teilen sich in drei Gruppen:
- Einschränkung des Auswahlbereiches. Ohne Einschränkung ist der Auswahlbereich die ganze Welt.
- Einschränkung der Auswahlmenge. Ohne Einschränkung sind das alle Ziele im Auswahlbereich.
- Einschränkung der Zieleigenschaften. Ohne Einschränkung sind das alle Ziele im Auswahlbereich.
Filter | Bedeutung |
---|---|
x y z
|
Auswahlbereich: Koordinaten für den Mittelpunkt des Auswahlbereiches bei Angabe eines Radius bzw. für eine Ecke bei Angabe eines quaderförmigen Bereichs. Für jede Koordinate, die weggelassen wird, wird die entsprechende Koordinate der Befehlsquelle verwendet, d. h. ohne Angabe einer einzigen Koordinate ist die Befehlsquelle der Mittelpunkt bzw. die Ecke des Auswahlbereiches. Negative Koordinaten und Kommazahlen sind möglich, aber keine relativen Koordinaten, wie x=~7. Wird die Nachkommastelle weggelassen, wird automatisch ".0" angenommen, was in der unteren nordwestlichen Ecke eines Blockes liegt. |
distance
|
Auswahlbereich: Radius in Blöcken um den Mittelpunkt des Auswahlbereiches. Bei einem einzelnen Wert werden nur Ziele ausgewählt, die genau auf dem Radius liegen. Ein Wertebereich wird mit zwei Punkten angegeben, z. B. 5..7 für "zwischen 5 und 7 inklusive". Auch möglich ist z. B. ..7 für "7 und kleiner" oder z. B. 5.. für "5 und größer". Der Radius ist kugelförmig. Ein Objekt wird gefunden, wenn sich das Zentrum seiner Füße im Auswahlbereich befindet, der Kopf wird nicht geprüft. Wird der Radius weggelassen, wird die ganze Welt einbezogen. Kommazahlen sind möglich. Beispiele:
|
dx dy dz
|
Auswahlbereich: Statt Angabe eines Radius kann auch die Ausdehnung (engl. dimension) eines Quaders angegeben werden. Die Position x y z beschreibt dabei einen Eckpunkt des Quaders. Der diagonal gegenüberliegende andere Eckpunkt wird nicht direkt angegeben, sondern ergibt sich aus Addition der Werte dx dy dz. Negative Werte und Kommazahlen sind möglich. Werden ein oder zwei Werte weggelassen, werden sie mit 0 angenommen. Werden dagegen alle drei Werte weggelassen, ist der Auswahlbereich die ganze Welt. Im Gegensatz zum kugelförmigen Bereich wird beim quaderförmigen Bereich ein Objekt gefunden, sobald sich ein Teil seiner Hitbox im Auswahlbereich befindet. Man kann dx dy dz mit einem Radius distance kombinieren, wobei der entstandene Auswahlbereich dann der Raum ist, den beide Angaben einschließen. Beispiele:
|
limit
|
Auswahlmenge: Wenn sich weniger als limit Ziele im Auswahlbereich befinden, hat dieser Filter keine Auswirkung. Ansonsten werden nur die limit Spieler ausgewählt, die dem Mittelpunkt des Auswahlbereiches am nächsten sind bzw. bei sort=furthest die limit Spieler, die vom Mittelpunkt am weitesten entfernt sind. Beispiele:
|
sort
|
Auswahlmenge: Die Sortierung in Verbindung mit einem limit schränkt die Auswahlmenge entsprechend ein: nearest (die Naheliegendsten), furthest (die Entferntesten), random (zufällig Ausgewählte) und arbitrary (unsortiert). Der Selektor @p enthält als Standardsortierung sort=nearest, der Selektor @r enthält als Standardsortierung sort=random und die Selektoren @a und @e enthalten als Standardsortierung sort=arbitrary. |
gamemode
|
Zieleigenschaft: Spielmodus survival = Überlebensmodus, creative = Kreativmodus, adventure = Abenteuermodus, spectator = Zuschauermodus. Verneinungen sind mit ! möglich. Mehrfachnennung ist nur mit Verneinung möglich. Beispiele:
|
level
|
Zieleigenschaft: Erfahrungslevel. Bei einem einzelnen Wert werden nur Ziele ausgewählt, die genau dieses Level haben. Ein Wertebereich wird mit zwei Punkten angegeben, siehe distance. Beispiel:
|
x_rotation
|
Zieleigenschaft: Kopfneigungswinkel. Sinnvolle Werte liegen zwischen -90 (senkrecht nach oben) über 0 (waagerecht) bis 90 (senkrecht nach unten). Kommazahlen sind möglich. Bei einem einzelnen Wert werden nur Ziele ausgewählt, die genau diesen Kopfneigungswinkel haben. Ein Wertebereich wird mit zwei Punkten angegeben, siehe distance.
Objekte, die ihre Kopfneigung nicht in der Rotation-Eigenschaft speichern, wie zum Beispiel Rüstungsständer, werden mit 0 ausgewählt. Der eigene Kopfneigungswinkel kann über den Debug-Bildschirm bei "Facing" abgelesen werden. In Verbindung mit anderen Filtern kann z.B. ein Spieler ausgewählt werden, der an einer ganz bestimmten Position steht und dabei einen bestimmten Gegenstand anschaut (indem er in eine bestimmte Richtung schaut). |
y_rotation
|
Zieleigenschaft: Blickrichtungswinkel. Sinnvolle Werte liegen zwischen -180 (Norden) über -90 (Osten), 0 (Süden), 90 (Westen) bis 180 (Norden). Kommazahlen sind möglich. Bei einem einzelnen Wert werden nur Ziele ausgewählt, die genau diesen Blickrichtungswinkel haben. Ein Wertebereich wird mit zwei Punkten angegeben, siehe distance.
Der eigene Blickrichtungswinkel kann über den Debug-Bildschirm bei "Facing" abgelesen werden. In Verbindung mit anderen Zielauswahlfiltern kann z.B. ein Spieler ausgewählt werden, der an einer ganz bestimmten Position steht und dabei einen bestimmten Gegenstand anschaut (indem er in eine bestimmte Richtung schaut). Beispiel:
|
scores={}
|
Zieleigenschaft: Ein oder mehrere Punktestände von Anzeigetafel-Zielen. Jeder Punktstand wird innerhalb der geschweiften Klammern mit seinem internem Namen und einem Wert angegeben, wobei auch Wertebereiche möglich sind, die mit zwei Punkten angegeben werden, siehe distance. Beispiele:
|
team
|
Zieleigenschaft: Mitgliedschaft in einem Anzeigetafel-Team. Es wird der interne Name des Teams abgefragt. Verneinungen sind mit ! möglich. Mehrfachnennung ist nur mit Verneinung möglich. Bei keiner Angabe eines Team-Namen sind die Spieler betroffen, die keinem Team angehören. Beispiele:
|
name
|
Zieleigenschaft: Name des Spielers oder der Kreatur. Verneinungen sind mit ! möglich. Mehrfachnennung ist nur mit Verneinung möglich. Namen mit Leerzeichen werden in Anführungszeichen geschrieben. Beispiele:
|
type
|
Zieleigenschaft: Objekt-ID des Ziels. Verneinungen sind mit ! möglich. Mehrfachnennung ist nur mit Verneinung möglich. Mit Aliasdaten lassen sich Gruppen von Objekten mit einem Filter auswählen. Für die Berücksichtigung von Spielern gibt es die spezielle ID player. Namensräume sind möglich, können aber auch weggelassen werden, dann wird minecraft: angenommen. Beispiele:
|
tag
|
Zieleigenschaft: Ein Objekt kann mit einem oder mehreren Freitext-Etiketten versehen werden, die man filtern kann, um das Objekt auszuwählen. Verneinungen sind mit ! möglich. Mehrfachnennung ist mit und ohne Verneinung möglich. Beispiele:
|
nbt={}
|
Zieleigenschaft: NBT-Daten werden innerhalb von geschweiften Klammern abgefragt. Verneinungen sind mit ! möglich. Mehrfachnennung des Filters ist mit und ohne Verneinung möglich. Achtung: Optionale NBT-Eigenschaften kann man nur mit der Verneinung abfragen, da es sein kann, dass einige oder alle Objekte die Eigenschaften nicht besitzen. Zur genauen Schreibweise einer NBT-Eigenschaft oder eines NBT-Wertes (in SNBT werden Zahlen mit Buchstaben gekennzeichnet) kann der Befehl /data Auskunft geben. Namensräume müssen mit angegeben werden, wenn darauf getestet wird, ansonsten schlägt der Test fehl. Beispiele:
|
advancements={}
|
Zieleigenschaft: Fortschritte werden innerhalb von geschweiften Klammern abgefragt. Sie können mit true oder false bestimmt werden. Namensräume sind möglich, können aber auch weggelassen werden, dann wird minecraft: angenommen. Beispiele:
|
predicate
|
Zieleigenschaft: Prädikate werden mit Namensraum abgefragt und geprüft, der Namensraum kann auch weggelassen werden, dann wird minecraft: angenommen. Prädikate sind Bedingungen die JSON-Dateien innerhalb eines Datenpaketes formuliert wurden und geprüft werden können. Verneinungen sind mit ! möglich. Mehrfachnennung ist mit und ohne Verneinung möglich. . Beispiele:
|
Weitere Beispiele mit Zielauswahlen siehe: Anleitungen/Befehle mit Zielauswahl |
NBT-Daten[]
Mit dem Parameter <NBT-Daten>
, den einige Befehle enthalten, steht ein sehr mächtiges Werkzeug zur Verfügung. Damit kann die umfangreiche Datenstruktur von Minecraft genutzt werden. Diese wird zur Verwaltung aller Spielelemente und beim Speichern der Welt verwendet. Die Datenstruktur von Minecraft ist baumartig aufgebaut nach dem sogenannten NBT-Format. Bei einigen Befehlen können Teile dieser Datenstruktur als Parameter in Form von Stringified NBT (SNBT) eingegeben werden.
Anwendung[]
![Datenbaum](https://static.wikia.nocookie.net/minecraft_de_gamepedia/images/1/12/Datenbaum.png/revision/latest/scale-to-width-down/500?cb=20180213175323)
Beispiel für einen Datenbaum
Bei der Eingabe von SNBT muss man sehr genau sein, sonst misslingt der Befehl. Dazu kann man wie folgt vorgehen:
1. Feststellung der richtigen Daten
Die NBT-Daten eines Gegenstandes unterscheiden sich beispielsweise von denen einer Kreatur. Daher muss man zuerst wissen, was man mit dem Befehl ansprechen will. Daraus ergeben sich die zugehörigen NBT-Daten:
- Blöcke mit zusätzlichen Funktionen (z.B. eine Truhe mit Inhalt) => Blockobjektdaten
- Gegenstände, die man im Inventar haben kann (z.B. eine Rüstung) => Gegenstandsdaten
- Lebewesen (Tiere, Monster und Dorfbewohner) => Kreaturdaten
- Sonstige (meist bewegliche) Objekte (z.B. Fahrzeuge) => Objektdaten
- Spieler => Spielerdaten
- Variablen => Anzeigetafeldaten
- Wertspeicher => JSON-Text
2. Analyse der Baumstruktur
Wenn man die richtigen Daten festgestellt hat, schaut man sich im entsprechenden Artikel die Baumstruktur der Daten an. Beispiel: ein Banner hat folgende Blockobjektdaten:
- Patterns: Liste der Muster
- Ein Muster
- Color: Musterfarbe
- Pattern: Musterart
- Ein Muster
Die Baumstruktur beginnt hier mit der Eigenschaft Patterns. Das ist eine Liste, wie man an dem Symbol erkennt, über das man auch mit der Maus fahren kann. Die Symbole sind im Artikel NBT-Format erklärt. Die Datentypen List und Compound sind sozusagen Behälter für weitere Eigenschaften. Sie bedeuten eine Verzweigung des Datenbaumes in viele Äste. Im Artikel wird aber immer nur ein Exemplar der Verzweigung genannt. Für das Banner bedeutet das: Die Patterns-Liste kann viele Muster enthalten. Jedes Muster hat dann zwei weitere Verzweigungen bzw. Eigenschaften: Color und Pattern.
3. Übertragung der Baumstruktur in SNBT
Zum Aufschreiben der Baumstruktur wird in Minecraft SNBT (Stringified NBT) verwendet. Dieses Format hat bestimmte Regeln, an die man sich genau halten muss. Verzweigungen der Baumstruktur werden durch geschweifte bzw. eckige Klammern dargestellt, wobei geschweifte beim Datentyp Compound anzuwenden sind, eckige beim Datentyp List. Details siehe den SNBT-Artikel. Für ein Banner mit zwei Mustern sieht die Baumstruktur in SNBT so aus:
{
Patterns:
[
{
Color:Wert,
Pattern:Wert
},
{
Color:Wert,
Pattern:Wert
}
]
}
4. Einsetzen der Werte
Jeder Wert ist von einem bestimmten Datentyp. Texte sind vom Datentyp String, Zahlen können Byte, Short, Int, Long, Float oder Double sein. Das erkennt man am Symbol des Wertes. Beispielsweise hat beim Banner die Color-Eigenschaft ein "I" im Symbol, ist also von Datentyp Int. Das sieht man auch, wenn man mit der Maus über das Symbol fährt. Je nach Datentyp muss man nun die richtige SNBT-Schreibweise anwenden. Bei Zahlen wird dazu meist ein Buchstabe angehängt außer beim Datentyp Int. Details siehe den SNBT-Artikel. Für ein Banner mit zwei weißen Streifen links und rechts sieht das so aus:
{
Patterns:
[
{
Color:15,
Pattern:ls
},
{
Color:15,
Pattern:rs
}
]
}
5. Einsetzen in den Befehl
Man kann alle NBT-Daten in eine Zeile schreiben:
setblock ~ ~ ~ yellow_banner{Patterns:[{Color:15,Pattern:ls}, {Color:15,Pattern:rs}]}
Bei umfangreichen oder verschachtelten NBT-Daten empfiehlt sich die strukturierte Schreibweise, die man direkt in einen Befehlsblock kopieren kann. Die Leerzeichen und Einrückungen stören Minecraft nicht bei der Durchführung des Befehls:
setblock ~ ~ ~ yellow_banner{
Patterns:
[
{
Color:15,
Pattern:ls
},
{
Color:15,
Pattern:rs
}
]
}
6. Fehlersuche
Wenn der Befehl nicht erfolgreich durchgeführt wurde, gibt Minecraft eine mehr oder weniger hilfreiche Fehlermeldung aus. Nun gibt man den Befehl in extrem verkürzter Form ein, testet dies und vervollständigt ihn nach und nach, bis man die fehlerhafte Stelle eingrenzen und korrigieren kann. Wenn man den Fehler trotzdem nicht findet, kann man nach Beispielen dieses Befehls googeln. Beispiel:
setblock ~ ~ ~ yellow_banner
setblock ~ ~ ~ yellow_banner{Patterns:[{Color:15,Pattern:ls}]}
setblock ~ ~ ~ yellow_banner{Patterns:[{Color:15,Pattern:ls}, {Color:15,Pattern:rs}]}
NBT-Daten für die Befehle[]
Befehl | Beispiel mit NBT-Daten | NBT-Daten |
---|---|---|
/give
|
give @p leather_helmet{display:{color:6591981} }
|
Gegenstandsdaten |
/clear
|
clear @p minecraft:leather_helmet{display:{color:6591981} } 1
|
Gegenstandsdaten |
/item
|
item replace entity @p armor.head with minecraft:player_head{SkullOwner:"MHF_Chicken"}
|
Gegenstandsdaten |
/setblock
|
setblock ~ ~ ~ minecraft:oak_sign{Text1:'{"text":"Willkommen"}'}
|
Blockobjektdaten |
/fill
|
fill ~ ~ ~ ~1 ~ ~1 minecraft:oak_sign{Text1:'{"text":"Willkommen"}'}
|
Blockobjektdaten |
/data merge block
|
data merge block ~ ~ ~ {Text1:'{"text":"Wiki"}'}
|
Blockobjektdaten |
/execute if block
|
execute if block ~ ~ ~ minecraft:oak_sign{Text1:'{"text":"Wiki"}'} run say Schild gefunden
|
Blockobjektdaten |
/summon
|
summon minecraft:llama ~ ~ ~ {DecorItem: {id:"minecraft:blue_carpet", Count:1b} }
|
Objektdaten Kreaturdaten |
/data merge entity
|
execute as @e[type=pig, distance=..5] run data merge entity @s {Saddle:true}
|
Objektdaten Kreaturdaten |
/execute if entity
|
execute if entity @a[nbt={OnGround:false}] run say Flieger gefunden
|
Objektdaten Kreaturdaten Spielerdaten |
/execute store result entity
|
execute store success entity @s NoGravity byte 1 if data entity @s {Dimension:-1}
|
Objektdaten Kreaturdaten |
/data merge storage
|
data merge storage minecraft:speicher {"text":"Ohne Objekte"}
|
JSON-Text |
NBT-Pfad[]
Manche Befehle nutzen den NBT-Pfad anstelle der SNBT-Form um nur bestimmte Werte zu erhalten. Während SNBT eine Kombination aus Namen und Werten ist ({Name1:{Name2:Wert}}
), werden beim NBT-Pfad nur die Namen verwendet (Name1.Name2
). Diese Kette von Namen bildet den Pfad zum gesuchten Wert.
NBT-Pfad | Beschreibung | SNBT |
---|---|---|
Name
|
Gibt den Wert von Name zurück. |
{Name:Wert} |
Name1.Name2
|
Falls der zurückgegeben Wert ein Objekt ist, kann man direkt nach dessen Werten suchen. |
{Name1:{Name2:Wert}} |
Name1{Name2:Wert2}
|
Falls der zurückgegeben Wert ein Objekt ist, kann man deren Inhalt abfragen ohne den Rückgabewert des Pfades zu verändern. Sollte die Abfrage fehlschlagen, wird nichts zurück gegeben. |
{Name1:{Name2:Wert2}} |
Name1{Name2:Wert2}.Name3
|
Auch nach der Abfrage kann man den Pfad normal fortsetzen. |
{Name1:{ Name2:Wert2, Name3:Wert3 }} |
Name[1]
|
Falls der zurückgegeben Wert eine Liste ist, kann man mit dem Index den passenden Eintrag erhalten. Der erste Eintrag hat den Index 0. |
{Name:[ Wert1, Wert2, Wert3 ]} |
Name1[0].Name2
|
Auch nach Listen kann man den Pfad normal fortsetzen. |
{Name1:[ {Name2:Wert1}, Wert2, Wert3 ]} |
Name[-1]
|
Mit einem negativen Index beginnt man beim letzten Eintrag. |
{Name:[ Wert1, Wert2, Wert3 ]} |
Name[]
|
Falls der zurückgegeben Wert eine Liste ist, werden so alle Einträge zurückgegeben. |
{Name:[ Wert1, Wert2, Wert3 ]} |
Name1[].Name2
|
Auch mit mehreren Einträgen kann man den Pfad normal fortsetzen. |
{Name1:[ {Name2:Wert1}, {Name2:Wert2}, {Name2:Wert3} ]} |
Name1[{Name2:Wert2}]
|
Falls der zurückgegeben Wert eine Liste aus Objekten ist, kann man Einträge aus der Liste nach deren Inhalt auswählen. Sollte kein Eintrag die Abfrage erfüllen, wird nichts zurück gegeben. Sollte mehrere Einträge die Abfrage erfüllen, werden alle zutreffenden Einträge zurückgegeben. |
{Name1:[ {Name2:Wert1}, {Name2:Wert2}, {Name2:Wert3} ]} |
Name1[{Name2:Wert2}].Name3
|
Auch nach der Abfrage kann man den Pfad normal fortsetzen. |
{Name1:[ {Name2:Wert1}, { Name2:Wert2, Name3:Wert4 }, {Name2:Wert3} ]} |
Einige Befehle ändern den zurückgegebenen Wert. Sollte der angegebene Pfad dabei noch nicht vollständig existieren, wird der Pfad dabei angelegt.
Hinweise[]
Durch das Einsetzen von Werten, die normalerweise nicht vom Programm verwendet werden, können Effekte erzielt werden, die nicht immer sinnvoll sind. Im schlimmsten Fall kann sogar das Spiel zum Absturz gebracht werden. Daher empfiehlt es sich, neue Werte und Kombinationen in einer Testwelt auszuprobieren, bevor man sie einsetzt.
Es können auch nicht alle Eigenschaften verändert werden. Bei einigen wird die Änderung vom Programm ignoriert (z.B. Zombiepferde mit anderer Fellfarbe). Eigenschaften, die nicht sichtbar sind (z.B. Gesundheitspunkte), kann man nur mit einem Programm wie dem "NBT-Explorer" überprüfen. In diesem Fall empfiehlt sich der Test in einer Welt vom Typ Flachland (d. h. ohne Höhlen) in Chunk 0/0, den man mit dem NBT-Explorer leicht finden kann (er liegt in der Region-Datei r.0.0.mca).
Wenn ein Befehl länger als 256 Zeichen ist, kann man ihn nicht mehr in der Chat-Konsole, sondern nur noch in einem Befehlsblock verwenden. Bei längeren Befehlen empfiehlt sich ein strukturierter Aufbau. Der Befehl kann auch in dieser strukturierten Form in einen Befehlsblock kopiert werden, es ist nicht notwendig, die Leerzeichen und Zeilenumbrüche zu entfernen. Zum Nutzen in einer Funktion müssen die Zeilenumbrüche allerdings entfernt werden.
Beispiel[]
![Hexe auf Pferd](https://static.wikia.nocookie.net/minecraft_de_gamepedia/images/f/fa/Hexe_auf_Pferd.png/revision/latest/scale-to-width-down/300?cb=20230312151907)
Eine "Hexenkönigin"
summon minecraft:horse ~ ~ ~
{
Tame:true,
Variant:3,
ArmorItem:
{
id:"minecraft:golden_horse_armor",
Count:1b
},
Passengers:
[
{
id:"minecraft:witch",
HandItems:
[
{
id:"minecraft:blaze_rod",
Count:1b
}
]
}
]
}
Der Befehl erzeugt ein Pferd mit NBT-Daten. Das Pferd muss zahm sein (Tame:1), sonst wirft es die Hexe gleich wieder ab. Es hat ein braunes Fell (Variant:3) und trägt eine Goldrüstung (id:golden_horse_armor). Reiter auf dem Pferd (Passengers) ist eine Hexe (id:witch), die eine Lohenrute (id:blaze_rod) in der Hand hält. Die HandItems-Eigenschaft enthält immer zwei Gegenstände. Wird nur der erste angegeben, wird der zweite als leer angenommen. |
Viele Beispiele mit NBT-Daten siehe: Anleitungen/Befehle mit NBT |
Datenpakete[]
![Lupe](https://static.wikia.nocookie.net/minecraft_de_gamepedia/images/d/d4/Lupe.png/revision/latest/scale-to-width-down/20?cb=20140825110017)
Datenpakete sind vom Spieler erstellte Dateien, beispielsweise wie Aliasdaten, Funktionen und Fortschrittsdaten, die abgerufen werden können.
Funktionen[]
![Lupe](https://static.wikia.nocookie.net/minecraft_de_gamepedia/images/d/d4/Lupe.png/revision/latest/scale-to-width-down/20?cb=20140825110017)
Funktionen sind eine Liste von Befehlen, die in einer mcfunction-Datei hinterlegt sind, die mit dem Befehl /function
aufgerufen wird.
Technik[]
- Siehe Technik (Befehle)
Galerie[]
Geschichte[]
Versionsgeschichte der Java Edition | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Einzelnachweise[]
- ↑ https://minecraft.fandom.com/wiki/Operator?oldid=407
- ↑ http://www.minecraftforum.net/forums/archive/alpha/alpha-survival-multiplayer-2/825446-server-commands?cookieTest=1
- ↑ http://www.minecraftnews.net/showthread.php?73-minecraft-Ingame-commands-in-SMP
- ↑ https://minecraft.fandom.com/wiki/Operator?oldid=23801
- ↑ https://minecraft.fandom.com/wiki/Commands?oldid=145992
Überblick |
| ||||||
---|---|---|---|---|---|---|---|
Befehle für Objekte |
| ||||||
Befehle für Welten |
| ||||||
Befehle für Server | |||||||
Historisch | |||||||
Bedrock Edition |
|
Überblick |
| ||||||||
---|---|---|---|---|---|---|---|---|---|
Editionen |
| ||||||||
Funktionsweise |
| ||||||||
Software | |||||||||
Multiplayer | |||||||||
Universum |
| ||||||||
Rezeption | |||||||||
Vorläufer | |||||||||
Scherze |
|