Minecraft-Bahnhof mit automatischer Fortsetzung der Fahrt

Für ein U-Bahn-System welches ich auf meinem Minecraft-Server bauen wollte, war ich auf der Suche nach einem System um in einen Bahnhof einzufahren und nach einer gewissen Wartezeit wieder in die Richtung Fahrrichtung zu fahren, falls der Spieler nicht vorher aus der Lore aussteigt.

Das System von oben

Herausgekommen ist ein System, bei welchem der Zug einfährt und ein Redstone-Signal mit einer Aktivierungsschiene auslöst. Dieses Signal aktiviert eine Trichter-Clock. Über die Größe der Trichter-Clock kann die Zeitdauer des Stopps auf dem Bahnhof bestimmt werden. Sobald die Trichter-Clock einmal im Kreis gelaufen ist, löst sie ein Signal aus und schießt den Zug ab. Damit das Signal lang genug ist, wird eine Schaltung zur Verlängerung des Signals genutzt. Ansonsten würde der Zug während der Anfahrt stecken bleiben.

Die Signalverlängerung

Das Problem, das der Zug in die richtige Richtung fährt, wurde dadurch gelöst das er vor dem Stopp eine Erhöhung befahren muss und in der Erhöhung zum Stehen kommt. Bekommen die Schienen wieder das Redstone-Signal erledigt die Schwerkraft den Rest. Damit sind manuelle Abschüsse ebenfalls möglich.

Minecraft Banner im Browser erzeugen

In Minecraft gibt es seit einigen Versionen sogenannte Banner. Diese werden aus unterschiedlichsten Elementen erstellt. Aus diesen Elementen innerhalb des Spieles ein Banner zu erstellen, kann dabei unter Umständen ein wenig kompliziert werden. Einfacher geht es mit einem Banner Generator im Browser.

Ein erzeugtes Banner kann anschließend exportiert werden

Mit dem Banner Generatur welcher unter needcoolshoes.com/banner zu finden ist, kann sich ein Banner aus den unterschiedlichsten Mustern und Farben einfach zusammengeklickt werden. Anschließend kann dieser Banner in Form eines Kommandos exportiert werden. Daneben wird auch die Bauanleitung generiert, so das der Banner von Hand direkt im Spiel gebaut werden kann.

Minecraft Kommandos zusammenbauen

Einfache Kommandos lassen sich in Minecraft mit ein paar Kenntnissen schnell zusammenbauen. Schwieriger wird es wenn man komplexe Befehle wie Items mit Verzauberungen oder Pfeile welche in eine bestimmte Richtung schießen erzeugen möchte. Hier kann man viel durch Trial und Error erreichen. Einfach wird es mit dem Generator-Tool MCStacker.

MCStacker in Aktion

Mit dem Tool ist es möglich sich schnell komplexe Befehle per Point & Click zusammenzubauen. Diese können anschließend übernommen und in Minecraft ausprobiert werden. Zu finden ist der Generator unter mcstacker.bimbimma.com.

Minecraft-Mobs in bestimmten Bereich entfernen

Für bestimmte Redstone-Schaltungen oder als letztes administratives Mittel ist man manchmal auf der Suche nach einem Minecraft-Kommando um alle Mobs in einem bestimmten Umkreis zu entfernen. Realisiert wird dies über das kill-Kommando:

/kill @e[type=!player,r=100]

Das Kommando entfernt dabei alle Entites außer solche vom Typ Player. Ändert man den Typ z.B. in creeper kann der Befehl auf bestimmte Mobs begrenzt werden.

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.