Minecraft-Befehl zum Entfernen bestimmter Spieler

Manchmal sollen in einem bestimmten Bereich einer Minecraft-Welt nur bestimmte Spieler Zutritt haben. Dies kann durch entsprechende Kommandoblöcke in Verbindung mit einem Trichter-Taktgeber gelöst werden.

Mit dem Befehl können Bereiche gesichert werden

Im ersten Schritt müssen alle Spieler, welche den Bereich betreten dürfen mit einem Tag versehen werden:

/tag seeseekey add invincible

Bei diesem Beispiel wird der Spieler seeseekey mit dem Tag invincible versehen. Nachdem der Tag vergeben wurde, kann ein entsprechender kill-Befehl geschrieben werden:

/kill @e[distance=..10,type=player,tag=!invincible]

In diesem Fall werden alle Entitäten vom Typ Spieler mit einer Distanz von bis zu zehn Blöcken zum Kommandoblock entfernt. Die Distanz gibt somit den sicheren Bereich an. Spieler welche mit dem definierten Tag versehen sind, sind von dieser Regel ausgenommen und können den Bereich normal betreten.

Spieler in Minecraft zufällig teleportieren

In Minecraft ist es möglich mit dem Teleport-Kommando (tp) und Kommandoblöcken Teleporter zu bauen. Schwieriger wird es allerdings wenn ein Teleporter gebaut werden soll, welcher zu zufälligen Koordinaten führen soll.

Nachdem das Kommando gesetzt wurde, ist der Teleporter einsatzbereit

Hier ist der tp-Befehl nicht sonderlich hilfreich, da feste Koordinaten vergeben werden müssen. In diesem Fall kann allerdings der spreadplayers-Befehl genutzt werden:

/spreadplayers 0 0 0 50000 false @p

Dieser verteilt die gewünschte Entität auf einem festgelegten Bereich. Der Bereich selbst wird im Kommando definiert. Daneben setzt er die Entität auch immer auf einem sicheren Grund ab, sodass diese Art des teleportierens sicher ist.

Absturz des Minecraft-Servers wegen zu kurzer Tickzeit

In Minecraft kann man viele Dinge mit seiner Zeit anstellen. Je nach Tätigkeit und Projekt kann dies den Minecraft-Server in unterschiedlichem Maße in Anspruch nehmen. Größere TNT-Explosionen können den Server dabei durchaus an seine Leistungsgrenze bringen. Manchmal beendet sich der Minecraft-Server ohne das der Server entsprechend ausgelastet ist. Im Log sieht das ganze dann wie folgt aus:

[21:48:23] [Server Watchdog/FATAL]: A single server tick took 60,00 seconds (should be max 0,05)
[21:48:23] [Server Watchdog/FATAL]: Considering it to be crashed, server will forcibly shutdown.

Hintergrund für diese Meldung ist das der Server pro berechenbarer Zeiteinheit (eben ein Tick) Operationen ausführt. Wenn dieser Tick länger als eine bestimmte Zeit dauert, wird dies vom eingebauten Watchdog erkannt und der Server beendet; der Watchdog denkt das sich der Server aufgehangen hat und beendet ihn aus diesem Grund. Die Lösung für dieses Problem ist es nun die Zeit die ein Tick maximal dauern darf zu verlängern. Eingestellt werden kann dies in der server.properties-Datei in der Eigenschaft max-tick-time:

max-tick-time=600000

Der Standardwert ist hier 600000 und kann auf einen beliebigen Wert eingestellt werden. Nutzt man den Wert -1 so wird die Prüfung des Watchdog vollständig deaktiviert. Wenn dieser Wert auf einen ausreichend hohen Wert eingestellt wurde und der Tick schlussendlich vollständig bearbeitet werden kann sieht das im Log wie folgt aus:

[22:09:00] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 222029ms behind, skipping 4440 tick(s)

Alternativ kann in bestimmten Szenarien, wie der Zündung von einer zu großen Menge TNT, ein entsprechendes Kommando zur Entfernung der gezündeten TNT-Blöcke eingesetzt werden:

/kill @e[type=PrimedTnt,r=100]

Mit Hilfe dieses Kommando ist es auch möglich Kommandoblöcke zum Schutz bestimmter Gebiete zu nutzen. Ist der Kommandoblock im Repeat-Modus kann damit verhindert werden das TNT in dem definierten Bereich gezündet werden kann.