Ein Wort vorab: Dies hier ist die wirklich 100% vollständige Anleitung und Infoseite für alles, was mit der Pipe zu tun hat und vor allem via BlvckBytes verbessert und verändert wurde. Klar ist das hier dann sehr lang und viel, aber dafür eben nichts vergessenes dabei 😊
Es bezieht auch alles rund um "PipePredicates" (Pipr) mit ein, die aber für alles, das mit "IPP" (ItemPredicateParser) zu tun hat, gilt. Beispielsweise gelten die Prädikate ja auch für den Inventar-Filter oder MutliBreak-Filter etc. - sie sind nur hier mit erklärt und aufgelistet, weil diese eben am Meisten für Pipes genutzt sind. Vielen Dank an BlvckBytes für das Schreiben dieser 100% Anleitung! ♥
Nun zur eigentlichen Anleitung:
Inhaltsverzeichnis:
1 Vorwort
2 Hintergrund zu unserem System
3 Definition einer Pipe
4 Erstellen von Einträgen
4.1 Auslösung durch Redstone
4.2 Auslösung durch Trichter
4.3 Eingangsfilter festlegen
5 Erstellen des Rohrpfades
5.1 Kontaktfläche der Glasblöcke
5.2 Kreuzungen mittels Glasscheiben
5.3 Farbiges Glas zur Unterscheidung
5.4 Vermittlung zwischen farbigen Rohren
6 Erstellen von Ausgängen
6.1 Aktivieren von Ausgängen
6.2 Ausgangsfilter festlegen
6.3 Ausgangskolben als Teil der Pipe
6.4 Detektion von Aktivität per Beobachter
7 Ablaufreihenfolge von Pipeblöcken
8 Der Überlauf
9 Explizite Priorisierung durch Sub-Pipes
9.1 Herausheben von Filtern
9.2 Kolben als Rückschlagventile
10 Kabellose Rohre bzw. Sprungpunkte
10.1 Schnellverbindung per Befehl
11 Der Aufwärmprozess
12 Die Pipesuche
13 Grundlagen der Prädikatssprache
13.1 Motivation
13.2 Silbenübereinstimmung zur Eingrenzuung
13.2.1 Kürzeste Übereinstimmung
13.2.2 Alle Übereinstimmungen (Wildcards)
13.2.3 Negative Silben
13.3. Verzauberungen
13.4 Verzauberungsanzahl
13.5 Trankeffekte
13.6 Effektanzahl
13.7 Tranktypen
13.8 Musikinstrumente
13.9 Anzahl
13.10 Abnutzung
13.11 Textsuche
13.12 Präsenz eines Spezialnamens
13.13 Reparaturkosten
13.14 Sammelvariablen
13.15 Inhalte von Behälteritems
13.16 Logische Verknüpfungen
13.16.1 Vorrang der Operatoren
13.16.2 Verneinung
1 - Vorwort
Dieses "Nachschlagewerk" beinhaltet unzählige Details und Hintergrundinformationen - nicht alle davon müssen verinnerlicht werden, um erfolgreich mit Rohrsystemen (Pipes) zu arbeiten. Sinnvoll ist es jedoch schon, dass Spieler mit höheren Ansprüchen an ihre Lager sich mit möglichst viel von dem befassen, was in dieser Anleitung geschrieben steht.
Keine Panik, nicht alles muss Wort für Wort gelesen werden - Bekanntes kann übersprungen - und Kompliziertes zu einem späteren Zeitpunkt erneut aufgegriffen werden. Wie immer gilt: Lieber zu viel Information haben, als das, was man hätte wissen müssen, nicht zu finden.
2 - Hintergrund zu unserem System
Die Pipe-Mechanik für den effizienten bzw. automatischen Transport von Items wurde vor geraumer Zeit (ca. 2012-2013) von "Maddy Miller" erstmalig mit grundlegender Funktion veröffentlicht. Über die Jahre kamen stets weitere Möglichkeiten hinzu und das Projekt wuchs zu dem System heran, welches heute vielen vertraut ist - die "Pipes" aus "CraftBook 3".
Trotz der genialen Grundidee hat diese ursprüngliche Implementierung leider mit schweren Performance-Problemen zu kämpfen, weshalb große Aufbauten eher verboten als begünstigt werden mussten.
Auf unserem Server läuft mittlerweile eine von Grund auf neu umgesetzte, verbesserte sowie erweiterte Version dieser Idee, welche ganz neue Maßstäbe ermöglicht, viele der bekannten Ärgerlichkeiten löst und einige Bequemlichkeiten bietet.
3 - Definition einer Pipe
Als Pipe bezeichnen wir den Zusammenschluss mehrerer einzelner Blöcke, die in Gesamtheit ein Beförderungssystem für Items zwischen Behälterblöcken bilden. Die einzelnen Bauteile sind überschaubar und simpel gehalten - die Vielseitigkeit liegt in ihrer Kombination. Es folgt eine Kurzübersicht aller Bestandteile:
Klebrige Kolben: Saugen bei Aktivierung den Eingangsbehälter ab und stellen den Beginn eines jeden Transportes dar.
Glasblöcke: Markieren den Pfad im Raum, entlang welchem die Items zwischen Eingang und den Ausgängen fließen.
Glasscheiben: Verkörpern eine Kreuzung und erlauben, dass zwei Rohre, bestehend aus Glasblöcken, innerhalb derselben Ebene einen gemeinsamen Punkt teilen, ohne ineinander überzugehen.
Normale Kolben: Stellen Ausgänge dar, von welchen aus Items aus dem Rohr in den am Kolben angebrachten Block transportiert werden können.
Wandschilder: Schilder, welche an den vier Wandseiten eines Blockes montiert werden können, definieren Zusatzattribute: Sie können Kolben für die Verwendung als Pipe zulassen, Filter für Ein- und Ausgänge festlegen sowie Sprungpunkte angeben.
All diese Blöcke machen zusammen das Konzept des sogenannten Rohres aus - sie signalisieren dem System, wie mit den Items umgegangen werden soll.
4 - Erstellen von Eingängen
Um einen Eingang in die Pipe zu erstellen, wird ein klebriger Kolben mit seiner aktiven Seite an einen Behälterblock gehangen. Sobald dieser Kolben aktiviert wird, saugt er einen Slot dieses Behälters ab und sendet die Items auf den Weg durch das an ihn angeschlossene Rohr.
Es gibt zwei Möglichkeiten, einen klebrigen Kolben auszulösen: Einerseits durch ein Redstone-Signal und andererseits durch einen Trichter, welcher die Items direkt in den Kolben leitet. Beide Möglichkeiten haben ihre jeweiligen Vor- und Nachteile, die im Folgenden beleuchtet werden.
4.1 - Auslösung durch Redstone
Ein klebriger Kolben saugt dann den angeschlossenen Behälterblock ab, wenn an ihm ein Signalwechsel, sprich An -> Aus oder Aus -> An auftritt.
Im Bild links wird jedes Mal ein Item transportiert, wenn der Hebel umgelegt wird. Dieses Signal kann von jeder Quelle stammen, was gezieltes Auslösen erlaubt. Um wiederholt so lange abzutransportieren, wie sich noch Items im Behälterblock befinden, kann eine Komparator-Clock gebaut werden.
(Links im Bild die beschriebene Komparator-Clock).
Solange sich Items im Behälterblock befinden, ist der Ausgang des Komparators aktiv; dieses Signal wird durch den Repeater verzögert und löscht den Komparator im Anschluss wieder; die Schaltung oszilliert und löst wiederkehrend den Abtransport aus.
Hier gibt es zwei bedeutende Nachteile: Erstens benötigt die Schaltung viel Platz sowie mehrere verschiedene Bauteile, und Zweitens bleibt sie stecken, sobald der Behälterblock einen bestimmten Füllstand überschritten hat.
(Das Ausgangssignal des Komparators ist direkt proportional zum Füllstand und wird gleich im Abschluss vom Repeater auf volles Level verstärkt. Durch den Redstonestaub zwischen Repeater-Ausgang und Komparator-Subtraktionseingang fällt Signalstärke ab. Ist die Signalstärke des Füllstandes höher als das übrige Signal beim Subtraktionseingang, so ist das Endergebnis größer Null und die Clock bleibt in aktiviertem Zustand stecken.)
Daher raten wir von diesem Aufbau ab - als Alternative steht der Trichter, wie in der nächsten Sektion beschrieben, zur Verfügung.
4.2 - Auslösung durch Trichter
Ein Trichter löst den klebrigen Kolben jedes Mal dann aus, wenn er versucht ein Item zu transportieren - sei es aus dem darüber liegenden Behälterblock oder aus seinem eigenen, internen Inventar.
Zu beachten ist bloß, dass der Ausgang des Trichters an die klebrige Seite des Kolbens angeschlossen ist - alle 5 Blickrichtungen (Unten, Norden, Osten, Süden, Westen) werden dabei unterstützt, was einen noch kompakteren Aufbau erlaubt.
Um Den Abtransport temporär zu blockieren kann der Trichter durch ein aktives Redstone-Signal wie gewohnt gesperrt werden.
Auch sehr zu empfehlen ist diese Version in Verbindung mit der Magnet-Mechanik, da der Trichter direkt als Behälterblock für den Magneten benutzt werden kann und dannn nach Anziehung im Anschluss die Items an die Pipe weitergibt, ohne Zwischenstopps.
Ebenso kann der Trichter als Vermittler zwischen der Pipe und Blöcken, die nicht direkt ein eigenes Inventar haben, funktionieren - beispielsweise in Verbindung mit einem Komposter, einem dekorierten Topf oder einer Jukebox (automatische Absaugung nach Beendigung der Wiedergabe).
4.3 - Eingangsfilter festlegen
Der klebrige Eingangskolben unterstützt einen Filter, der festlegt, welche Items abgesaugt werden dürfen. Das erlaubt u.a. vollautomatische Braumaschinen, indem das Endergebnis der jeweiligen Braustufe als Filter auf den Kolben gesetzt wird. Details der Filterzuweisung bitte Abschnitt 6.2 entnehmen, da der Prozess genau der selbe ist.
5 - Erstellen des Rohrpfades
Der Pfad des Rohres im Raum, entlang welchem die Items später fließen werden, kann mittels Glasblöcken und - falls nötig - Glasscheiben definiert werden.
5.1 - Kontaktfläche der Glasblöcke
Wichtig ist stets, dass sich die Blöcke vollflächig berühren, nicht bloß entlang der gemeinsamen Kante bei diagonalem Versetzen.
5.2 - Kreuzungen mittels Glasscheiben
Wenn sich 2 Rohre in derselben Ebene queren müssen (kommt aber selten vor), jedoch nicht ineinander übergehen sollen, kann eine Glasscheibe als Kreuzung zum Einsatz kommen - diese wird dann in Flussrichtung übersprungen, ohne dabei links oder rechts abzubiegen.
Im Aufbau hier fließen Items von Norden nach Süden und umgekehrt, sowie von Osten nach Westen und umgekehrt, jedoch nicht in allen übrigen Routen.
5.3 - Farbiges Glas zur Unterscheidung
Neben farblosem Glas stehen auch alle farbigen Varianten zur Verfügung, was einerseits zur Farbkodierung und andererseits zur Isolation für das System selbst nützlich sein kann.
Um zwei unabhängige, gleichfarbige Rohre nebeneinander zu legen muss ein Block Abstand gehalten werden - nicht so bei zwei verschiedenen Farben.
Items im blauen Rohr folgen nur dem Blauen und die im Roten nur dem Roten - zwischen zwei unterschiedlichen Farben wird niemals übergesprungen. Diese Eigenschaft ermöglicht es, mehrere parallele Rohrsysteme sehr platzsparend zu verlegen.
5.4 - Vermittlung zwischen farbigen Rohren
Soll ein Übergang zwischen zwei Rohren unterschiedlicher Farbe geschaffen werden, so kann ein farbloser Glasblock als "Vermittler" gelten, da dieser mit jeder Farbe kompatibel ist.
Rotes Glas ist mit farblosem kompatibel und farbloses wiederum mit Blauem, wodurch der Übergang zwischen rot und blau über den Vermittlerblock gegeben ist.
6 - Erstellen von Ausgängen
Während der klebrige Kolben den Eingang in das Rohrsystem verkörpert, so signalisieren normale Kolben die Ausgänge zu Behälterblöcken oder anderen Rohren. Der Ausgang liegt dabei immer auf der aktiven Seite des Kolbens.
6.1 - Aktivieren von Ausgängen
Da das Erstellen eines Rohrsystems gewisse Zugriffsrechte benötigt, müssen Ausgänge per [Pipe] - Schild (Text in 2. Zeile) aktiviert werden, bevor sie ihre Funktion des Itemtransportes entfalten. Im Sinne der Bequemlichkeit gilt jedoch folgendes Prinzip: Sobald ein aktivierter Ausgang vom Itemfluss erreicht wurde, sind alle darauffolgenden Ausgänge in Flussrichtung auch ohne Schild automatisch aktiviert.
Hier im Aufbau ist die Flussrichtung von links nach rechts. Da der erste Ausgangskolben kein Schild trägt, ist dieser nicht aktiviert und wird übersprungen; der zweite Kolben trägt ein solches, wodurch dieser die Items in die darüber liegende Truhe weiterleitet; der Dritte wird durch seinen Vorgänger impliziert aktiviert, weshalb hier ein Schild nicht verpflichtend ist.
Sollte der nötige Platz vorhanden sein (was oftmals wegen optischer Verkleidung nicht der Fall ist), so können auch alle 3 Kolben durch ein Aktivierungsschild am klebrigen Eingangskolben selbst aktiviert werden.
Im Alltag empfiehlt sich: Lieber mal ein Schild zu viel als zu wenig, zudem ohne [Pipe]-Schild ohnehin kein Filter angegeben werden kann, was in den meisten Fällen unsinnig wäre.
6.2 - Ausgangsfilter festlegen
Um Ordnung in ein Lagersystem zu bringen ist es nötig Behälterblöcke für bestimmte Items oder Gruppen an Items zu dedizieren - dafür können Filter auf das [Pipe]-Schild gebunden werden, welche dann auf dem Kolben, an welchem das Schild montiert ist, in Kraft treten.
Hierzu gibt es 2 Möglichkeiten: Erstens die der Ernennung eines jeden Item-Typs auf dem Schild selbst, durch Kommata getrennt. Und Zweitens die Zuweisung eines logischen Prädikates mit beliebiger Komplexität (ermöglicht neben dem Material auch Verzauberungen, Trankeffekte, Abnutzung, Name, Item-Gruppen, logische Verknüpfungen. etc.)
Die erste Methode ist simpel, erlaubt jedoch wie bereits erwähnt nur das Item-Material abzugleichen. Direkt nach dem [Pipe]-Marker in zweiter Zeile können in der Dritten eine Komma-separierte Liste an erlaubten Materialien und in Vierter eine an verbotenen Materialien genannt werden. Beide Angaben müssen übereinstimmen, damit das Item passieren darf, weshalb es nur Sinn macht eine davon zu benutzen - im Allgemeinen ist das die Liste erlaubter Items.
Im hier gezeigten Aufbau (Flussrichtung von links nach rechts) lagert die erste Truhe nur Stein, während die Zweite alles lagert, was keine Erde ist, und die Dritte dann somit alle Überreste auffängt. Materialien müssen in dieser Art der Angabe immer in interner, englischer Form spezifiziert werden, z.B. "red_stained_glass_pane". Aufgrund dessen, plus dem Fakt, dass es keinerlei Auffüllhilfen oder Nuancen gibt, wird von dieser veralteten Methode abgeraten.
Stattdessen ist es ratsam, sich mit den Grundlagen der Prädikate auseinander zu setzen, um diese mittels /ipp set <Prädikat> sowie anschließender Interaktion mit dem Schild, Kolben oder Behälterblock (sehr bequem für dichte Aufbauten) auf den Ausgang zu binden. (Kurzanleitung hier.)
Für einfache Filter mit einer Hand voll an Item-Materialien kann auch /pipr generate benutzt werden, während man auf die zugehörige Truhe am Ausgangskolben schaut; das System generiert dann eine oder - Kette an allen Item-Materialien, die sich in der Truhe befinden und bindet sie automatisch an das Schild am Kolben.
Dieser Hilfsbefehl kann gerade zu Anfang den Alltag sehr erleichtern, erreicht jedoch niemals auch nur ansatzweise die Flexibilität die mit dem Verständnis von Prädikaten einhergeht. Deshalb wird wärmstens empfohlen sich nach und nach mit den Grundlagen in Abschnitt 13 zu befassen. 😊
6.3 - Ausgangskolben als Teil der Pipe
In Hinsicht auf den Weg der Items innerhalb des Rohres sind Glas- und Kolbenblöcke äquivalent: Beide werden durchflossen und leiten die Items an bis zu 5 ihrer verbleibenden Nachbarblöcke weiter. Das bedeutet, dass es nicht nötig ist Glasblöcke hinter bzw. unter die Kolben zu setzen, um Kontakt herzustellen - diese Blöcke wären überflüssig.
Daraus folgt auch, dass Ausgangskolben beliebig aneinander gesetzt werden können, um kompakte Lager zu bauen. Jede Fläche eines jeden Kolbens in einem solchen Aufbau kann den Item-Strom weiterleiten, indem ein Glasrohr daran angeschlossen wird.
Im Bild rechts sieht man, dass man nur einen Glasblock unter den Kolben benötigt, damit die Items durch die Kolbenreihe geschickt werden.
6.4 - Detektion von Aktivität per Beobachter
Anstatt eines Behälters kann auch ein Beobachter (Observer) an die aktive Kolbenseite montiert werden - dieser löst genau dann aus, wenn ein Item durch in fließen würde. Daraus folgt, dass nicht nur generell Aktivität im Rohr detektiert werden kann, sondern in Verbindung mit Filtern diese Detektion sogar weiter auf bestimmte Items eingeschränkt werden kann.
7 - Ablaufreihenfolge von Pipeblöcken
An dieser Stelle ist bewusst von einer Ablaufreihenfolge die Rede, nicht von einem Fluss, da Ersteres für die genaue Funktionsweise der Pipes ein besseres Gedankenmodell bietet. Es ist wichtig, hierfür ein gutes Verständnis zu entwickeln, um auftretende Probleme im Alltag effektiv lösen zu können.
Während des Ablaufens der Pipe vom Transportprozess wird bei jedem erreichten Kolbenblock in genau dieser Reihenfolge versucht das Item einzulagern; Reste bleiben im Rohr und gehen weiter entlang der aktuellen Richtung; Items, die keinen Platz fanden, bleiben im Eingangsbehälter an ihrer ursprünglichen Stelle liegen.
Der einfachste Fall ist ein einzelnes Rohr, welches von A nach B leitet und Block für Block beschritten wird.
Um von einem Block zum Nächsten zu gelangen versucht das System zu jedem der sechs Nachbarblöcke des Aktuellen zu expandieren, in folgender Reihenfolge: Oben, Unten, Norden, Osten, Süden, Westen. Bereits beschrittene Blöcke werden dabei stets ignoriert, um Schleifen zu vermeiden.
Im Bild links repräsentiert der Glasblock den aktuellen Block, von dem aus expandiert werden soll, und der rote Beton den jeweiligen Nachbarblock. Es ist nicht ratsam auf dieser Sequenz die Füllreihenfolge des Lagers aufzubauen, da sie schnell zu Verwirrung führt - hierfür sind explizierte Priorisierungen (siehe Abschnitt 9) weit aus benutzerfreundlicher.
Bei einer linearen Pipe ohne Verzweigungen ist die Ablaufreihenfolge offensichtlich - interessant wird es, sobald mehrere Wege zur Verfügung stehen.
Hier im Bild werden die abgelaufenen Blöcke nach und nach durch den roten Beton markiert, ausgehend von der Eingangstruhe mit klebrigem Kolben. Ab dem Punkt, an dem die Items den Hauptblock der Verzweifung in Bild 4 erreichten, werden nun beide verfügbaren Wege (im Allgemeinen sind bis zu 5 möglich) in gleichen Schritten abgelaufen. Zuerst geht es einen Block nach oben, dann einen Block nach rechts - danach wieder nach oben und abschließend ein letztes Mal nach rechts.
Diese Reihenfolge ist die natürliche Konsequenz des Algorithmus der Pipes und in der Informatik auch als "breadth-first search" bekannt. Wenn ohnehin alle Ausgänge einen eindeutigen Filter besitzen oder die Füllreihenfolge irrelevant ist, muss diesem Schema keine Aufmerksamkeit geschenkt werden; ansonsten wird erneut die explizite Priorisierung nahegelegt (Abschnitt 9).
Weiterhin werden noch Flächen betrachtet - vorkommen bei "Kolbenwänden" (dichteste Anordnung für Behälter).
Diese werden "diagonal" ab Anschlusspunkt abgelaufen, wodurch es sinnvoll ist die Zuleitung ganz unten an der Wand anzuschließen, sodass sich die Truhen von unten nach oben füllen - für oben nach unten dementsprechend oben anknüpfen.
Eine weitere wichtige Eigenschaft der Ablaufreihenfolge ist, dass Ausgangskolben mit Priorität abgelaufen werden - sobald ein Kolben erreicht wurde, werden alle direkt daran angeschlossenen Kolben vollständig abgearbeitet bevor es an den etwaigen angeschlossenen Glasblöcken weitergeht.
Im Bild hier bedeutet das, dass zuerst der erste Kolbenturm vollständig befüllt wird, bevor die Items zum zweiten Turm vordringen - trotz dessen, dass das Glas gleich am esten Block des ersten Turmes angeschlossen ist. Im Alltag ist diese Reihenfolge vorteilhaft, da keine Serpentinen gelegt werden müssen und die Truhen pro Turm ordnungsgemäß in gleicher Richtung (hier von unten nach Oben) befüllt werden.
Während die priorisierten Kolben abgearbeitet werden, werden auch alle dabei aufgefundenen Glasblöcke in eine Warteschlange eingefügt und nach Beendigung der Kolben in genau dieser Reihenfolge fortgesetzt- dadurch sind beide Reihenfolgen klar definiert.
8 - Der Überlauf
"Überlauf" werden ein oder mehrere Ausgänge genannt, wenn sie am Ende der Ablaufreihenfolge stehen und somit alle übrigen Items aufnehmen, die keinen kompatiblen Ausgang oder keinen Platz fanden. Wenn ein solcher nicht existiert, bleiben die Items in der Eingangstruhe an ihrer ursprünglichen Stelle leigen - beides kann je nach Situation seine Vorteile haben.
Hier im Aufbau werden ausgehend von der Truhe zuerst alle Fässer befüllt - die Reste landen in der Shulker-Box (Blocktypen bloß für die Darstellung gewählt).
Randnotiz: Bei unserem System ist es nicht nötig darauf zu achten, dass Eingangstruhen nur einen einzigen Item-Typ beinhalten. Während die ursprüngliche Version aus CraftBook dann blockiert, wenn das erste Item im Inventar keinen Ausgang fand, so nimmt unsere Mechanik einfach alle unterschiedlichen Items mit auf die Reise und testet alle an den Ausgängen, bis eines davon Platz fand; ab dann wird nur mehr dieses bis zum Ende des Rohres behandelt, da Pipes im Sinne der Performance bloß einen Stack auf einmal abtransportieren.
9 - Explizite Priorisierung durch Sub-Pipes
Die Reihenfolge, in welcher Ausgänge erreicht werden, hängt ohne Anwendung des im Folgenden erklärten Mechanismus einzig und alleine von der Anzahl an Blöcken ab, die bis zum jeweiligen Ausgang abgelaufen werden müssen - "nähere" Ausgänge werden zuerst erreicht und somit früher abgearbeitet als "fernere" (Distanz = Block-Anzahl der Pipe von Eingang bis Ausgang, nicht die Luftlinie!).
Für kleinere Aufbauten ist dieses Schema völlig ausreichend - sobald jedoch mehrere Quellen und mehrere Ziel-Lager ins Spiel kommen, wird es mit dem Ansatz, alles in eine "Kette" zu setzen, sehr schnell unübersichtlich und ineffizient.
Um dieses Problem auf simple Weise zu lösen wurde das Konzept der "Sub-Pipes" ("untergeordnete" Rohre) eingeführt. Statt auf einen Behälterblock zu zeigen, kann ein Ausgangskolben auch direkt in eine weitere Pipe führen
Das untergeordnete Rohr wird ab Erreichung vollständig abgearbeitet, bevor es im Hauptrohr weitergeht. Dadurch kann eine klare Priorität definiert werden.
Hier im Aufbau wird das Hauptrohr (farblos) von Unten nach Oben Schritt für Schritt abgearbeitet. Zuerst wird der erste Kolben in Laufrichtung erreicht, welcher an die rote Sub-Pipe angeschlossen ist. Ganz egal wie lang, verwinkelt oder komplex die rote Sub-Pipe auch sein mag, wird diese vollständig abgearbeitet, bevor es im Hauptrohr weiter geht. Als nächstes wird der Kolben der grünen Leitung erreicht, die auch wieder vollständig abgearbeitet wird; selbiges mit der Blauen im Anschluss.
Erst ganz am Ende wird der Überlauf des Hauptrohres erreicht, der die übrigen Items aufnimmt.
Ohne diese Funktion würde der Aufbau weit aus komplizierter ausfallen: Alle drei Lagerstellen (rot, grün und blau) müssten in eine lange Kette gehangen werden, sodass garantiert ist, dass der Überlauf erst ganz am Ende erreicht wird. Wie sofort klar wird, kann auf diese Weise einiges an Zeit und Ressourcen eingespart werden, während auch die Wartungsfreundlichkeit zugewinnt.
Die Farben dienen der bloßen Anschaulichkeit - Sub-Pipes können jede Farben haben oder auch farblos sein.
9.1 - Herausheben von Filtern
Da die Kolben an Sub-Pipes wie übliche Ausgangskolben funktionieren, unterstützen sie natürlich auch Filter - diese werden abgeglichen, bevor die Items das untergeordnete Rohr beschreiten.
Aufgrund dessen, kombiniert mit dem Fakt, dass alle nachfolgenden Kolben automatisch aktiviert sind, benötigt kein einziger Ausgangskolben an einer Truhe im oben gezeigten Aufbau ein Schild, was erneut einiges an Zeit und Ressourcen spart; ebenso muss bei Änderung des gewünschten Inhaltes nur ein Schild angepasst werden, statt Dutzende.
Dieselbe "Vorfilterung" kann natürlich für alle weiteren Rohre benutzt werden, ganz egal wie komplex diese ausfallen. Beispiel: "Leite nur Baumstämme in das Lager A weiter, alles andere fließt zu Lager B."
9.2 - Kolben als Rückschlagventile
Jeder Ausgangskolben, der eine Sub-Pipe einleitet, dient gleichzeitig auch als Rückschlagventil: Items wandern in die Richtung der aktiven Kolbenseite, können jedoch nicht in entgegengesetzter Richtung zurückfließen.
Dieses Verhalten kann bei vielen Aufbauten von großem Nutzen sein - zum Beispiel, wenn eine Sub-Pipe mit verschiedenen Items aus mehreren Lagern versorgt werden muss, diese Lager sich untereinander jedoch nicht befüllen sollen.
Im links gezeigten Aufbau können beide Eingänge aus Lager A (rot) und Lager B (blau) das Lager C (orange) befüllen, der Eingang aus Lager C jedoch nur sein eigenes, da der Item-Strom an den zwei Kolben mit Blickrichtung zum orangenen Glas aufgehalten wird und nicht passieren darf. Selbiges gilt für Items, die aus Lager A strömen und bei B nicht eindringen können (und umgekehrt).
Sollen Rohrleitungen priorisiert, jedoch bidirektional verbunden werden, können 2 entgegengesetzte Kolben zum Einsatz kommen - jeder Kolben übernimmt im hier gezeigten Aufbau eine Flussrichtung.
10 - Kabellose Rohre bzw. Sprungpunkte
Einige unserer Stammspieler haben sich über die Zeit sehr große Areale aufgebaut, auf welchen mehrere Lager sowie mehrere Farmen ihren Platz finden. Um diese untereinander zu verbinden, beispielsweise zu einem zentralen Massenlager (sowie um die Pipesuche global nutzen zu können), mussten früher Glasstrecken bestehend aus mehreren tausend Blöcken verlegt werden. Um dieses Problem zu lösen, die Aufbauten zu vereinfachen, Ressourcen zu sparen und gleichzeitig den Server zu entlasten wurden kabellose Rohre (WirelessPipes) eingeführt, die erlauben, in den Ablauf der Pipe einen direkten Sprung beliebiger Diszanz von A nach B einzubauen.
Aus Gründen der Simplizität wird mit einem Wandschild auf einem Glasblock der Pipe definiert, auf dem in zweiter Zeile [WirelessPipe] geschrieben steht; in dritter Zeile folgen die Koordinaten (formatiert als x y z oder x:y:z) des Schildes auf der anderen Seite des Sprungs.
Sobald beim Ablaufen des Rohres das erste, lokale Schild an der Reihe ist, wird zum Glasblock gesprungen, auf welchem das 2. Schild in der Ferne montiert ist - so, als wären sie physisch verbunden.
Wie hier im Aufbau ersichtlich, ist es auch ohne Weiteres möglich, mehrere Sprungpunkte an ein und dem selben Rohr zu montieren; auch auf ein und den selben Block, falls nötig.
Um der Verbindung eines Sprungpunktes folgen zu können, einfach während des Schleichens auf das Schild schlagen - schon wird man ans Ende teleporiert. Diese Funktion ist aber erst ab dem Bürger-Rang verfügbar, um den Missbrauch als Teleportationsschild zu vermeiden. Vertrauenswürdige Spieler können für das nötige Recht auch vorab anfragen.
Der Verbindungsstatus (verbunden bzw. nicht verbunden) kann mittels Rechtsklick (benutzen) während des Schleichens ausgelesen werden. Wer mit Java-Client spielt, kann auf die Koordinaten im Chat klicken, um diese zu kopieren. Im allgemeinen ist das manuelle Setzen von Koordinaten jedoch nicht nötig, wie der im nachstehenden Kapitel erklärte Hilfsbefehl zeigen wird.
10.1 - Schnellverbindungen per Befehl
Auch wenn die Funktionsweise an sich sehr simpel gehalten wurde, kann der Umgang mit Koordinaten im Alltag schnell zu Verwirrung führen. Im Sinne der Bequemlichkeit wurde für die schnelle Erzeugung einer solchen [WirelessPipe] - Verbindung ein Befehl namens /wirelesspipe (alias /wpipe) eingeführt, mit welchem die nötigen Schildinhalte in Windeseile automatisch generiert werden können. Das Schild darf entweder leer oder bereits vorausgefüllt sein - ersteres empfiehlt sich im Alltag sehr.
Der Ablauf ist kinderleicht, wie folgt:
Schild A aufsuchen und mit dem Fadenkreuz ansehen
/wpipe eingeben, um eine Verbindung zu beginnen
Schild B aufsuchen und mit dem Fadenkreuz ansehen
Wieder /wpipe eingeben, um die Verbindung abzuschließen
Die kabellose Verbindung ist ab jetzt aktiv.
11 - Der Aufwärmprozess
Während kleinere, lokal gehaltene Rohrsysteme quasi sofort zur Verfügung stehen, so kann bei Größeren ein Aufwärmprozess wahrgenommen werden; im Folgenden sollen die Hintergründe dazu grob erläutert werden.
Wie bereits bei der Ablaufreihenfolge in Abschnitt 7 erklärt müssen für jeden einzelnen Pipe-Block alle fünf Nachbarblöcke (sechs, minus dem Vorgänger-Block) abgefragt werden, da an jedem davon ein weiterer Teil des Rohres hängen könnte.
Es ist kein Ausnahmefall, dass manche Rohrsysteme auf unserem Server aus mehreren tausend Ausgangskolben und weiteren tausenden Glasblöcken bestehen; bei einem Ausmaß von 5 000 bis 10 000 Blöcken werden das ingesamt 25 000 bis 50 000 Blöcke, die es abzufragen gilt.
Klar wird hoffentlich schnell, dass diese Masse an Operationen in einem einzigen Tick die Server-Performance merklich beeinträchtigen würde; erschwerend hinzu kommt, dass einige der Chunks, in welchen sich die Blöcke langer Rohre befinden, nicht geladen sind und das synchrone Laden dieser erneut das übrige Spielgeschehen temporär blockiert.
Im Aufwärmprozess wird diese Masse an Blöcken nun nach und nach abgefragt (mit rund 1000 Blöcken/Transportversuch) und deren Material, Ausrichtung etc. in einen sogenannten Cache (temporärer Zwischenspeicher für schnellen Zugriff) geladen. Wird ein Chunk getroffen, der nicht geladen ist, so wird das Laden asynchron (im Hintergrund) angestoßen und auf diesen erst im Anschluss zugegriffen.
Sobald dieser Cache für ein Rohrsystem aufgebaut wurde, passiert der Transport nahezu direkt. Der Cache wird mit dem nächtlichen Neustart zurückgesetzt, weshalb das Aufwärmen Teil des Alltages ist. Hierzu gibt es jedoch nichts zu beachten - "Items in die Eingangstruhe werfen und darauf vergessen", denn das System kümmert sich um den Prozess von ganz allein.
Wem das Aufwärmen zu lange dauert, der kann mittels [WirelessPipe] so viele Langstrecken wie möglich eliminieren, wodurch sich ein merklicher Unterschied einstellt. Im Allgemeinen gilt: Ein vernünftig gebautes Lager wärmt nicht länger als 10-30 Sekunden auf - und das auch nur ein Mal pro Tag. Das stellt einen fairen Kompromiss zwischen kreativer Freiheit und der Wahrung des Spielerlebnisses anderer dar.
12 - Die Pipesuche
Für den effizienten Zugriff auf die Inhalte eines Lagers kann mit der Pipesuche /pipesearch (alias /pps ) eine Inventur aller Items aller angeschlossenen Behälterblöcke erzeugt werden, von der dann per Klick ausgegeben werden kann. Bei der Benutzung einfach auf einen Kolben, ein Pipe-Schild, einen Glasblock oder eine verbundene Truhe schauen. An den Befehl kann ebenso ein Prädikat angehangen werden, nach welchem gesucht wird; in Verbindung mit Befehlsschildern lassen sich hiermit Schnellsuchen einrichten, die keinen einzigen Tastenanschlag benötigen.
Weiterhin gibt es als automatische Variante zu /pps auch noch den /pipefetch Befehl (alias /ppf ), welcher direkt in das Inventar ausgibt, ohne vorher die Übersicht zu öffnen. Der erste Parameter gibt an, ob die erste Übereinstimmung ( Single ) oder jede Übereinstimmung ( Every ) genommen werden soll; der Zweite gibt die Menge in Stück an und unterstützt neben positiven Gesamtzahlen auch noch Ausdrücke (Beispiel: 5*64); im Dritten kann wieder ein Prädikat angegeben werden. Um sich einen Stack Stein geben zu lassen, kann /ppf Single 64 stein benutzt werden. Auch diese Funktion bietet sich wieder für ein Befehlsschild an.
Im Allgemeinen wird ständig an neuen Möglichkeiten der Interaktion mit dem eigenen Lager gearbeitet, weshalb sich diese Anleitung im Großteil auf die Funktion des Rohrsystems selbst beschränkt. Infos zu allen weiteren Funktionen kann in Ankündigungstexten im Discord sowie hier auf der Webseite gefunden werden.
13 - Grundlage der Prädikatssprache
Prädikate sind logische Ausdrücke, die auf ein Objekt (in diesem Fall Items) angewandt werden können und als Ergebnis ein simples "Ja" (Übereinstimmung) oder "Nein" (Abweichung) erzeugen - dieser Test gibt an, wie im weiteren Prozess mit dem Item vorgegangen werden soll. Die maßgeschneiderte Sprache, welche im folgenden Beleuchtet wird, baut mit Hilfe von menschlich lesbarer Ausdrücke intern solche Abgleichfunktionen auf, die dann von der Maschine ausgeführt werden können.
13.1 Motivation
MineCraft beinhaltet mittlerweile über 1500 verschiedene Materialien an Items, unzählige Verzauberungen, Trankeffekte, sowieo sonstige Attribute welche einen riesigen Raum an Kombinationsmöglichkeiten bieten, wodurch ein System für beliebig detaillierten Abgleich benötigt wird, das dieser Herausforderung gewachsen ist.
Aus historischer Sicht wurde oft mit numerischen IDs (35:14 für rote Wolle) oder internen Namen (green_stained_glass_pane für grüne Glasscheiben) gearbeitet - diese sind schwer zu merken, unangenehm zu lesen und bringen spätestens bei Zusatzdaten wie Verzauberungen ( damage_all = Schärfe) große Verwirrung.
Unsere Lösung besteht nun darin, mit den offiziellen Sprachdateien von Mojang zu arbeiten und die darin enthaltenen Namen zur Identifikation all dieser Eigenschaften heranzuziehen. Die benutzte Sprache kann mittels /ipp language <Sprache> ausgewählt werden und liegt standardmäßig bei Deutsch.
Somit kann nun in völlig vertrauter Weise beispielsweise folgender Ausdruck geschrieben werden: Diamantharnisch Schutz 5 . Keine wirren Sondernzeichen, keine kryptischen Namen; dazu kommt, dass es für Java-Clients eine Echtzeit-Vervollständigung mit unzähligen Vorschlägen bei der Befehlseingabe gibt.
13.2 Silbenübereinstimmung zur Eingrenzung
Wie bereits angedeutet existieren insgesamt mehrere tausend Namen an Materialien, Verzauberungen, Trankeffekten etc., wobei man als Spieler natürlich auch diese nicht alle in 100%-iger Korrektheit auswendig wissen kann.
Um Namen nach und nach einzugrenzen, kann mit Silben gearbeitet werden, wobei eine Silbe nichts weiteres als einen Teil des Namens darstellt, ohne weiterer Regeln (daher bitte nicht im strikten, grammatikalischen Sinne interpretieren).
Eine oder mehrere Silben, verbunden durch Bindestriche, machen dann eine sogenannte "syllable matching-unit" ( "Silben-Übereinstimmungs-Einheit") aus: Alle vorkommenden Silben müssen die entsprechende Übereinstimmung im Zielnamen finden, sodass dieser Name in der näheren Auswahlliste landet.
Sobald eine Silbe im Zielnamen übereinstimmte, wird diese entfernt, sodass jede Silbe auch exakt 1:1 vorkommen muss. Sollte ein Name also doppelte Silben beinhalten, können diese auch doppelt angegeben werden, was die Auswahl weiter eingrenzt.
Weiterhin können Silben in beliebiger Reihenfolge aneinandergehängt werden- jede Silbe wird ohnehin individuell behandelt.
13.2.1 Kürzeste Übereinstimmung
Dia-har liefert als Ergebnisse einerseits Diamantharnisch , jedoch auch Diamantener-Rossharnisch .
Ohne weiterem Zutun wählt das System immer die kürzeste Übereinstimmung aus, wodurch der Ausdruck Dia-har ultimativ als Diamantharnisch gewertet wird. Im Allgemeinen ist es jedoch nicht zu empfehlen, sich auf diese Auswahl zu verlassen, da mit neuen Updates von MineCraft auch neue Items hinzukommen und somit in die Liste an Übereinstimmungen "hineinrutschen" können; besser ist es, für einzelne, exakte Namen die Autovervollständigung zu nutzen und ganze Begriffe zu setzen: /ipp set Diamantharnisch .
13.2.2 - Alle Übereinstimmungen (Wildcards)
Wenn ein Abgleich von Silben mehrere Ergebnisse liefert, so können diese als Gruppe zum Einsatz kommen, um Kategorien von Items abzudecken. Wichtig ist, dass sobald eine solche Auswahl eingegangen wird, nur mehr Item-Materialien in Frage kommen - Verzauberungen, Trankeffekte, etc. unterstützen diese Gruppierung nicht, da es bei ihnen ohnehin keine nennenswerten Gemeinsamkeiten in den Namen gibt.
Eine sogenannte "Wildcard-Silbe" kann nun entweder ein Stern * (alle Übereinstimungen, inklusive der, die keine übrigen Silben hat), oder ein Fragezeichen ? (alle Übereinstimmungen, exklusive der, die keine übrigen Silben hat) sein. Wird eine solche Silbe an die Übereinstimmungs-Einheit angehängt, so wählt das System statt nur dem kürzesten Ergebnis mehrere aus, dem Modus * bzw. ? entsprechend.
Das gezeigte Bild beinhaltet alle Farben an Wollblöcken, da die Silbe "Wolle" vorkommen muss und das Fragezeichen angibt, dass alle Kandidaten, die übrige Silben ( "Rote, "Orange", etc.) besitzen, in die finale Auswahl aufgenommen werden.
Ein gutes Beispiel für den zweiten Modus mit Sternchen-Silbe sind die Shulkerkisten. Die Eingabe Shulker-Kiste-? liefert alle verfügbaren Farben der Blöcke, jedoch nicht die farblose Variante selbst, da diese mit dem Namen "Shulker-Kiste" keine übrigen Silben besitzt und somit ausgeschlossen wird.
Um die farblose Kiste selbst auch mit einzubeziehen, kann der Ausdruck Shulker-Kiste-* benutzt werden, der dann auch den Namen ohne Silben-Überreste in die Auswahl aufnimmt.
Im Allgemeinen wird jedoch empfohlen, für Gruppen an Items in Lagern unsere Variablen einzusetzen, wie in Abschnitt 13.14 näher beschrieben. Diese sind klar definiert und verbleiben auch über Versionsupdates hinweg konstant. Der o.g. Weg ist jedoch gerade bei der Suchfunktion durch seine Effektivität unschlagbar.
13.2.3 Negative Silben
Manchmal reicht es nicht, alle gewünschten Silben zu spezifizieren, sondern es wird auch notwendig anzugeben, welche Silben nicht im Zielnamen vorkommen dürfen.
Als Beispiel sehen wir uns Schilder näher an - ein Ausdruck von Schild-? liefert alle Schilder, darunter auch Hängeschilder.
Um die Hängeschilder nun auszuschließen, kann eine Negativsilbe für "Hänge" hinzugefügt werden. Dafür der gewünschten Silbe ein Ausrufezeichen ! voranstellen: Schild-?-!Hänge .
Schon sind alle Hängeschilder aus der näheren Auswahl entfernt. Leider gibt es noch weitere Störenfriede: Das "Namensschild", den "Schildkrötenpanzer" und viele weitere Materialien. Bei Ausdrücken für die Konfiguration des Lagers wäre erneut die Benutzung von Variablen, wie in Abschnitt 13.14 näher beschrieben, vorzuziehen; für schnelle Suchen reicht Schild-? jedoch im Alltag völlig aus.
Alternativ ist auch eine nachträglich Subtraktion (siehe Abschnitt 13.16.2) der Gruppe an Hängeschildern vom Ergebnis aller Schilder möglich, nämlich: Schild-? nicht Hänge-Schild-?
13.3 Verzauberungen
Die Namen aller Verzauberungen können analog zu denen der Materialien ebenso durch Eingabe von Silben ausgewöhlt werden. Optional kann einem solchen Ausdruck noch eine Zahl folgen, die die Stufe der Verzauberung angibt.
Beispiele:
Verbrennung Verbrennung jeder Stufe
Verbrennung 2 Nur Verbrennung auf Stufe 2
Schärfe >3 Schärfe aller Stufen größer als 3 (also 3 und 5)
Schutz <4 Schutz aller Stufen kleiner als 4 (also 3, 2, 1)
13.4 Verzauberungsanzahl
Da ein Item mehrere Verzauberungen beinhalten kann, erlaubt es dieses Prädikat die Anzahl davon näher einzuschränken; dafür im Deutschen Verzauberungsanzahl und im Englischen Enchantment-Count mit darauffolgender Zahl benutzen, wie folgt:
Verzauberungsanzahl 1 Alle Items, die genau eine Verzauberung haben
Verzauberungsanzahl 0 Alle Items, die unverzaubert sind
Verzauberungsanzahl > 1 Alle Items, die mehrere Verzauberungen besitzen
13.5 Trankeffekte
Die Namen aller Trankeffekte können analog zu denen der Materialien ebenso durch Eingabe von Silben ausgewählt werden. Optional kann einem solchen Ausdruck noch eine Zahl folgen, die die Stufe des Effekts angibt, sowie eine Dauer, angegeben in Ticks oder als Minuten:Sekunden .
Beispiele:
Regeneration Regeneration jeder Stufe und Dauer
Regeneration 2 Nur Regeneration auf Stufe 2
Regeneration * 1:30 Regeneration jeder Stufe, aber nur mit Dauer 1:30
Regeneration 1 0:45 Regeneration auf Stufe 1 mit Dauer 0:45
Alle Parameter unterstützen auch hier wieder die größer-als/kleiner-als Notation wie bereits in Abschnitt 13.3 gezeigt.
13.6 Effektanzahl
Da ein Trank mehrere Trankeffekte beinhalten kann, erlaubt es dieses Prädikat die Anzahl davon näher einzuschränken; dafür im Deutschen Effektanzahl und im Englischen Effect-Count mit darauffolgender Zahl benutzen, wie folgt:
Effektanzahl 1 Alle Tränke mit genau einem Effekt
Effektanzahl >1 Alle Tränke mit mehreren Effekten
13.7 Tranktypen
Aktuell gibt es drei Tranktypen, die von Mojang weder als Materialien noch als Effekt geführt werden, sondern ein eigenes Attribut darstellen. Diese können analog zu den Materialien ebenso durch Eingabe von Silben ausgewählt werden, wie folgt:
Dickflüssiger-Trank ("thick-potion" im Englischen)
Gewöhnlicher-Trank ("mundane-potion" im Englischen)
Seltsamer-Trank ("awkward-potion" im Englischen)
13.8 Musikinstrumente
Bisher gibt es 8 Instrumente, die auch nur bei den Ziegenhörnern zum Einsatz kommen. Diese können analog zu den Materialien ebenso durch Eingabe von Silben ausgewählt werden, also:
Nachdenken ( "ponder" im Eng.)
Singen ( "sing" im Eng.)
Suchen ( "seak" im Eng.)
Fühlen ( "feel" im Eng.)
Bewundern ( "admire" im Eng.)
Rufen ( "call" im Eng.)
Sehnen ( "yearn" im Eng.)
Träumen ( "dream" im Eng.)
13.9 Anzahl
Um die Anzahl eines Stacks abzugleichen, kann im Deutschen Anzahl und im Englischen Amount benutzt werden, unsd zwar wie folgt:
Anzahl 5 Ein Stack mit genau fünf Stück
Anzahl >16 Alle Stacks mit mehr als 16 Stück
13.10 Abnutzung
Das Abnutzungsprädikat hat zwei Einsatzzwecke: Einerseits alle Items zu finden, die Abnutzung erfahren können (Eingabe ohne Parameter) sowie Zweitens einzuschränken, wie viel Abnutzung ein Item haben darf. Dazu wird im Deutschen Abnutzung und im Englischen Deterioration benutzt, Beispiel:
Abnutzung Alle Items, die Abnutzung erfahren können
Desweiteren können noch zwei Parameter angegeben werden, wobei der Erste die minimale Abnutzung in Prozent und der Zweite die maximal Abnutzung in Prozent angibt.
Abnutzung 0 0 Nur komplett unbenutzte Items
Abnutzung 30 Items, die mindestens zu 30% abgenutzt wurden
Abnutzung * 30 Items, die maximal zu 30% abgenutzt wurden
Abnutzung 20 50 Items, die zwischen 20% und 50% abgenutzt wurden
13.11 Textsuche
Um den Text aus Items (Name, Lore, Buchseiten, Buchautor, etc.) zu durchsuchen, können die Suchwörter durch Leerzeichen getrennt in doppelte Anführungszeichen gesetzt werden, wie folgt:
"Sammelbox" Alle Items, bei denen Sammelbox als Schlagwort vorkommt
"Axt des" Alle Items, bei denen "Axt" und "des" als Schlagwörter vorkommen
13.12 Präsenz eines Spezialnamens
Items können im Amboss sowie per Befehl umbenannt werden. Um Items ausfindig zu machen, die einen solchen Spezialnamen tragen, kann im Deutschen Hat-Name und im Englischen Has-Name zum Einsatz kommen, beispielsweise:
Hat-Name Alle Items, die einen Spezialnamen tragen
13.13 Reparaturkosten
Items, die im Amboss zusammengelegt wurden, tragen erhöhte Reparaturkosten. Gerade bei verzauberten Büchern, wo diese Eigenschaft nicht direkt ersichtlich ist, kann dadurch Verwirrung entstehen. Um Items mit Reparaturkosten gesondert zu lagern, kann im Deutschen Reparaturkosten und im Englischen Repair-Cost mit nachfolgendem Wert zum Einsatzkommen, also wie folgt:
Reparaturkosten 0 Alle Items, die keine Reparaturkosten besitzen
Reparaturkosten >0 Alle Items, die Reparaturkosten besitzen
13.14 Sammelvariablen
Eine Variable ist ein spezieller Name, umgeben von Prozentzeichen, der eine ganze Gruppe an Materialien beinhaltet und vom Serverteam manuell verwaltet wird. Die aktuell verfügbare Liste an Variablen kann am Einfachsten unter
https://variablen.blockstal.de eingesehen werden (Dort gibt es auch eine Suchfunktion!). Wenn bei der Eingabe ein %-Zeichen zu Anfang einer Silbengruppe eingetippt wird, werden alle bestehenden Variablen vorgeschlagen.
Beispiele:
%Gekochte-Nahrung% Alle Items, die nach dem Kochen roher Nahrung in Öfen vorliegen
%Türen% Alle Türen aller Sorten
%Laub% Alle Laubsorten aller Bäume
%Monsterdrops% Alle Items, die beim Töten von Monstern eingesammelt werden können.
13.15 Inhalte von Behälteritems
Items wie Shulkerkisten oder Bündel tragen in ihren Inventaren weitere Items, die ebenso abgeglichen werden können. Hierfür gibt es ingesamt vier ähnliche Prädikate, welche allesamt dasselbe Ziel verfolgen, jedoch unterschiedliche Forderungen dafür stellen.
Im Folgenden wir eine Übersicht dieser Prädikate gegeben, wonach die Funktionsweise des Operanden (der Ausdruck X , auf den sie wirken) genauer beleuchtet wird.
innen-manche (x) bzw. inner-some (x) Ein oder mehrere Slots im Item-Inventar müssen X erfüllen
innen-manche-oder-selbst(x) bzw. Ein oder mehrere Slots im Item-Inventar müssen X erfüllen, innen-some-or-self (x) oder das äußere Item selbst muss X erfüllen, sollte es kein
Inventar besitzen
innen-alle (x) bzw. inner-all (x) Alle Slots im Item-Inventar müssen X erfüllen.
innen-alle-oder-selbst (x)bzw. Alle Slots im Item-Inventar müssen X erfüllen, oder das äußere inner-all-or-self (x) Item selbst muss X erfüllen, sollte es kein eigenes Inventar haben.
Der Platzhalter X darf nun jedes gültige, beliebig komplexe Prädikat annehmen. Im allgemeinen wird empfohlen, wie oben gezeigt immer Klammern einzusetzen, sodass der Operator auch auf das gesamte Prädikat wirkt und Missverständnisse ausgeschlossen werden.
Diese Operatoren können im Alltag etwas mehr Nachdenklichkeit erfordern, um richtig ans Ziel zu kommen - aber die Möglichkeit besteht jedenfalls. Es folgen ein paar Beispiele.
innen-manche(Stein) Items, die Stein in ihrem Inventar haben - aber auch andere Items oder leere Slots
innen-manche(Stein oder Erde oder Holzkohle) Items, die Stein, oder Erde, oder Holzkohle in ihrem Inventar haben - alles von einem davon bis hin zu allen Dreien, inklusive sonstiger Items sowie leerer Slots
innen-alle(Stein oder Luft) Items, die nur Stein oder leere Slots in ihrem Inventar haben, jedoch keinerlei andere Items; dies inkludiert komplett leere Inventare.
innen-alle(Stein oder Luft) nicht innen-alle(Luft) Items, die nur Stein oder leere Slots in ihrem Inventar haben, jedoch nicht vollständig leer sind.
innen-alle(Luft) Items mit vollständig leerem Inventar
Oftmals wird gewünscht, in Massenlagern ein Item selbst sowie gelandenen Shulkerkisten davon im selben Abteil unterzubringen. Dafür wurden die ...-oder-selbst-Versionen eingeführt, die erlauben Duplikation im Ausdruck einzusparen.
innen-manche(x) oder x ↔️ innen-manche-oder-selbst(x)
innen-alle(x) oder x ↔️ innen-alle-oder-selbst(x)
Sollen alle Items eingelagert werden, die entweder selbst Stein sind oder Stein im eigenen Inventar beinhalten (Nicht jedoch leer sind oder andere Items mitführen), kann der folgende Ausdruck zum Einsatz kommen:
innen-alle-oder-selbst(Stein oder Luft) nicht innen-alle(Luft)
13.16 Logische Verknüpfungen
Alle zuvor genannten Prädikate können beliebig komplex miteinander verbunden werden, durch Einsatz von und (and im Englischen), oder (or im Englischen) sowie nicht (not im Englischen).
Wird eine Kette an Prädikaten ohne und bzw. oder verbunden, so wird implizit ein und dazwischen angenommen, und zwar wie folgt:
Diamantharnisch Schutz 5 ↔️ Diamantharnisch und Schutz 5
Diamantschwert Schärfe Reparatur ↔️ Diamantschwert und Schärfe und Reparatur
Damit kann im Alltag einiges an Tipparbeit eingespart werden- Ausdrücke lesen sich dann schon fast wie Sötze in natürlicher Sprache.
13.16.1 Vorrang der Operatoren
Wichtig zu beachten ist, dass und stärker bindet als oder , und nicht immer nur auf den darauffolgenden Term Anwendung findet. Bei komplexen Ausdrücken gilt im Allgemeinen: Lieber eine Klammer zu viel setzen, als Eine zu wenig.
Schreibt man beispielsweise Diamantschwert Schärfe oder Rückstoß und betrachtet das implizite und , so erhält man Diamantschwert und Schärfe oder Rückstoß .
Ohne Setzen von Klammern werden entweder Diamantsfchwerter mit Schärfe, oder alle Items mit Rückstoß akzeptiert. Gewollt war jedoch vermutlich alle Diamantschwerter mit Schärfe oder Rückstoß, was wie folgt richtig formuliert werden kann: Diamantschwert (Schärfe oder Rückstoß) .
13.16.2 Verneinung
Das nicht als Verneinung hat zwei große und nützliche Einsatzgebiete - einerseits als Verneinung von Ausdrücken und andererseits zur Subtraktion von Variablen oder Material-Gruppen.
Alle Diamantspitzhacken, die kein Glück als Verzauberung besitzen, kann wie folgt ausgedrückt werden: Diamantspitzhacke nicht Glück .
Alle Items, die keine Diamantspitzhacken sind, wäre dann nicht Diamantspitzhacke .
Um von einer bestehenden Variable oder einer Material-Gruppe (Benutztung der ? oder * Silbe) im Nachhinein noch etwas abzuziehen bzw. auszuschließen, kann ein nicht angehängt werden.
%Monsterdrops% nicht Knochen erlaubt alle Monsterdrops, außer Knochen. Wolle-? nicht Rote-Wolle erlaubt alle Farben der Wolle, außer der Roten.
Ein Sonderfall wäre noch folgender: Du möchtest im Grunde alles in eine Truhe einsortieren lassen, nur 2-3 bestimmte Sachen nicht. Ein Beispiel mit Sand und Sandstein wäre:
nicht sand und nicht sandstein oder etwas kürzer nicht (sand oder sandstein) . Das lösst sich in den Klammern dann auch einfach bequem Erweitern über eine normale oder -Kette.
0Anleitung Pipesystem und Prädikate - by BlvckBytes - Juli 2026 - Version 1