Minecraft Befehle


Hier wird es eine Menge an Tutorials für Minecraft Befehle geben. Ich werde dir zeigen, wie einzelne Befehle funktionieren und was für überraschende Sachen du damit machen kannst!

Allerdings werde ich hier nur über normale Befehle reden und alles was ich hier bespreche wird in Befehlsblöcken möglich sein. Falls du aber noch mehr machen möchtest (z.B. Mapmaking), dann würde ich dir dringenst empfehlen in die Tutorials für Datapacks zu schauen (und natürlich ein Datapack zu machen).

Vorwarnung: aktuell gibt es noch keine Tutorials für Datapacks, aber sie werden kommen!

Minigames

Wofür brauche ich das?

Diese Technik wurde für alle entwickelt, die Minigames in Minecraft machen wollen, welche mehrere Spawn-Plattformen brauchen, auf welchen die Spieler zufällig aufgeteilt werden sollen.

Man muss aber nicht unbedingt Spieler zufällig aufteilen.

Redstone

Falls du die Befehle mit Befehlsblöcken und Redstone ausführst, brauchst du nur eine einfache Technik, um alles zum Laufen zu kriegen.

Du brauchst 5 aneinander gereihte Befehlsblöcke, von dem der erste ein wiederholender Befehlsblock ist (braucht Redstone). Als nächstes braucht man einen Komperator, welcher sich erst aktiviert, wenn der wiederholende Befehlsblock ein Komperator-Output ausgibt. Dieser Komperator sorgt dafür, dass die Befehlsblockreihe nicht durchgängig aktiv ist. Sobald der Komperator sich wieder deaktiviert, dass heißt, wenn die Spieler alle wegteleportiert wurden, wird eine Redstonefackel aktiviert, wodurch ein Resetbefehl ausgeführt wird.

Das war all die Technik! Nicht so schwer, oder?

Befehle

Schon kommen wir zu den Befehlen! Wenn du jetzt die Befehle schreibst, dann musst du die Bereiche, in welchen die Spieler sind und wo die Spieler hinteleportiert werden sollen, schon bereit haben!

Der erste Befehl ist ausschließlich dafür da, zu erkennen, ob Spieler in der Lobby sind! Die Position der Lobby wird mit x1 y1 und z1 gekennzeichnet und sollte Möglichst mittig in der Lobby sein. Wir verwenden distance=..5 weil die Lobby 5 Blöcke in der Diagonale groß ist. Bedenke, dass die Distanz kugelförmig ist.

execute positioned x1 y1 z1 if entity @e[type=player, distance=..5]

Im zweiten Befehl fügen wir allen Spielern, welche in der Lobby sind und noch kein Etikett haben, ein Etikett hinzu, mit welchem wir die Spieler später einfacher auswählen und teleportieren können.

execute positioned x1 y1 z1 as @e[type=player, distance=..5, tag=!Etikett] at @s if entity @s run tag @s add Etikett

Jetzt gehen wir weg von der Lobby und positionieren unserern Befehl mittig in den Spawnplattformen(x2 y2 z2) und spawnen dort einen Marker mit dem Etikett "spawnsys_marker".Wir verwenden distance=..7 um sicher zu gehen, dass noch kein Marker dort ist.

execute positioned x2 y2 z2 unless entity @e[tag=spawnsys_marker, distance=..7] run summon marker ~ ~ ~ {Tags:["spawnsys_marker"]}

Der folgende Befehl ist etwas komlizierter, denn das ist der Befehl in dem wir den Marker zufällig teleportieren. Zuerst schauen wir, ob ein Spieler in der Lobby ist und falls das der Fall ist führen wir den Spreadplayersbefehl bei den Spawnplattformen aus. Hier werden nur x2 und z2 gebraucht, da der Spreadplayersbefehl immer an die höchste Stelle teleportiert, wenn du nicht willst, dass das passiert (z.B. Wenn du ein Dach hast) musst du noch angeben unter welchem Y-Wert teleportiert werden soll (under y3). Nachdem x2 und z2 angegeben wurden, kommt die Distanz zwischen den zu verteilenden Entitäten(in unserem Fall nur der Marker) und danach die Distanz in welcher der Marker zufällig verteilt werden soll. Wichtig! Die Distanz ist beim Spreadplayersbefehl nicht kugelförmig, sondern quadratisch! false steht dafür, ob teams berücksichtigt werden sollen und als letztes kommt nur noch der Selektor.

execute as @e[tag=spawnsys_marker] at @s positioned x1 y1 z1 if entity @e[tag=Etikett, distance=..5] run spreadplayers x2 z2 1 5 under y3 false @s

Im vorletzten Befehl wird überprüft, ob der Marker auf einer Spawnplattform(in meinem fall blue_wool) steht. Falls das der Fall ist, wird nocheinmal überprüft, ob ein Spieler in der Lobby ist. Wenn dies auch der Fall ist wird schließlich der Spieler zum Marker teleportiert. Fertig! Fast..

execute as @e[tag=spawnsys_marker] at @s if block ~ ~-1 ~ blue_wool positioned x1 y1 z1 if entity @e[tag=Etikett, distance=..5] run tp @e[tag=Etikett, distance=..5, limit=1] @s

Denn es fehlt noch der Resetbefehl, welcher den Marker entfernt.

kill @e[tag=spawnsys_marker]