Eisenfarm und Eisengolem: Instandhaltungsarbeiten

Minecraft 1.9 bringt eine etwas nervige Änderung mit sich, durch die die alten Commands für die Eisenfarm und den Eisengolem leider nicht mehr funktionieren.

In Minecraft 1.8 und jünger gab es das Riding-Attribut, durch das man (unter anderem) eine Kette aus Blöcken erzeugen konnte. Das ermöglichte es, mehrere Befehle nacheinander auszuführen.

In Minecraft 1.9 wurde das nun durch das Passengers-Attribut ersetzt. Während das Riding-Attribut zum “Reiter”, also dem oberen Block gehört, ist das Passengers-Attribut eine Eigenschaft des “Reittiers”, beziehungsweise des unteren Blocks. Das heißt: Alles dreht sich einmal um.

Riding ist ein Attribut des oberen Blocks, Passengers eins des unteren Blocks.

Riding ist ein Attribut des oberen Blocks, Passengers eins des unteren Blocks.

Leider bedeutet das auch, dass mein Code zur Erzeugung der Commands ein paar Umbaumaßnahmen benötigt. Aber nichts, was nicht an einem Nachmittag erledigt werden könnte.

Hier die aktualisierten Commands für Minecraft 1.9+:

Eisenfarm 1.9
Eisengolem 1.9

Minecraft: Iron Farm via Command Block

Command Blocks in Minecraft sind zwei Dinge: Nützlich und totaal unpraktisch. Als ich vor kurzem auf der Suche nach einer Möglichkeit war, sehr schnell automatisiert zu Testzwecken eine Eisenfarm zu bauen, fand ich erstaunlicherweise keinen Befehl dafür.  Obwohl es sonst sehr abgefahrenes Zeug gibt. Vielleicht war mein Anliegen ja zu profan.

Das heißt also, dass ich selbst ans Werk musste. Im Creative Mode kann man ja mit dem Kommandos /setblock und /fill Blöcke an definierte Koordinaten setzen. Diese Befehle kann man auch in Command Blocks hinterlegen. Das Problem: In so einen Block passt nur genau 1 Befehl. Eine ausgewachsene Eisenfarm (zum Beispiel diese lustigen Türme hier) braucht aber mehrere davon.

Die Lösung: Man schreibt einen Befehl, der mehrere weitere Command Blocks erstellt, die dann die eigentlichen Befehle ausführen. Dafür “beschwört” man Sandblöcke, die fallen (FallingSand), aber gar keine Sandblöcke sind, sondern Command Blocks, und die auf weiteren FallingSand-Blöcken “reiten”, die Command Blocks sind, und die wiederum auf weiteren Blöcken “reiten”… bis man einen stattlichen Turm beisammen hat. Klingt abgefahren, ist es auch.

Für die Umwandlung der eigentlichen Befehle in diese Kaskade aus FallingSand-Blöcken habe ich mir ein Python-Skript geschrieben, das mir diese lästige Arbeit abnimmt. Da es sich doch um arg viele Befehle handelt und dieser Turm aus Command Blocks nicht unbegrenzt hoch werden kann, musste ich außerdem noch etwas bei der Anordnung der Blöcke tricksen. Das Ergebnis funktioniert, solange man sich nicht allzu hoch hinaus wagt.

Es gibt auch ein kleines Demonstrationsvideo:

Den Command gibt es hier. Außerdem nervig: Command Blocks können nur Commands mit einer maximalen Länge von ca. 32.767 Byte speichern. Da komme ich mit meinen 29.000 Zeichen schon relativ nahe ran…

[Update] Durch ein bisschen Optimierung habe ich den Command auf nur noch 15881 Zeichen herunterbekommen. Außerdem ist er jetzt viel schneller und funktioniert auch in größerer Höhe als vorher. Klick.