UglyTech - FifthElement und FalseBook

FifthElement(Source)

Fangen wir mit etwas seichten zum Anfang an und zwar FifthElement, ehemals MinestarWarp. Es war das erste Projekt von Meldanor für Minestar und hat ein altes Bukkit-Plugin ersetzt. Das Plugin stellt Befehle bereit, damit sich Leute zu Orten teleportieren können. Damals ging der Teleport in Vanilla noch nicht zu Koordinaten und auch Spieler zu anderen Spielern zu teleportieren ging nicht. Deswegen sind diese Befehle noch redundant und werden auch einfach weitergereicht an die Vanilla Commands.

Es verwaltet auch die riesen Anzahl an Warps. Im Moment existieren ca. 2000 Warps in der Welt, wovon "nur" 200 öffentlich, der Rest jedoch privat ist. Dazu werden, wie schon im Artikel zu Contao und TheRock beschrieben, die Warps in der Datenbank gespeichert. Hier eine kurzer Einblick in die Datenbank. Man beachte die Warps von Outi und dessen kreativen Namen!

tl_files/Blog-Dateien/UglyTech Erklaert/fifthelement.PNG

FifthElement verwaltet auch die privaten Schließfächer für die PayUser, die Banken, die Homes für jedermann und die Mines als Ort für die Goldgrube. Die Tabellen sind ähnlich aufgebaut wie die der Warps. Sie heißen nur anders.

Bei FifthElement hat die Interaktion mit den Usern mehrere Wandel erlebt. Es ist schwierig bisher, eine Liste mit 200 Einträgen in der Minecraft Welten geschickt anzuzeigen. Voher war es eine einfache Liste mit allen Informationen, aber reiner Text ist schwer zu bedienen. Mit der Möglichkeit in 1.7 so genannte JSON Kodierte Nachrichten

zu versenden, konnte man wenigstens auf Klick in der Ansicht vor und zurück blättern.

tl_files/Blog-Dateien/UglyTech Erklaert/fithelement gui.png

Dieses wird vielleicht noch ein neues GUI mit 1.8 erleben. In dem Mod CivCraft

gibt es eine interessante Mechanik bezüglich GUIs rein mit Bukkit. Dort wird ein imaginäres Inventar geöffnet, wie das einer Truhe. In diesem Inventar sind dann temporäre Gegenstände, die nicht rausgezogen werden können, aber angeklickt. Beim Klick passiert dann etwas neue, wie zum Beispiel das Öffnen einer Truhe. So könnte das neue GUI in FifthElement aussehen. Statt eine Liste im Text klickt man sich durch Inventare mit Filteroptionen wie nach Alphabet anzeigen oder public/privat und so weiter. Sonst wird FifthElement nur auf Quellcode Ebene ein wenig aktualisiert, von den Funktionen her bleibt es aber gleich.

Als nette Anektode ist die Einführung von FifthElement zu erzählen. Der unerfahrene Zwerg Meldanor dufte den Release zur Laufzeit übernehmen. Irgendwann um 2 Uhr morgens saß er dann mit BuzzJoe im TS und sollte sein erstes Plugin auf so einem großen Server installieren. Natürlich lief einfach gar nichts glatt, es gab mehrere Fehler und man saß bis 5 Uhr morgens im TS und schraubte und machte. Natürlich ging nichts. In den nächsten Wochen wurden mehrere kleine Updates aufgespielt. So wurde dar erste Release von Meldanor zum Debakel. Was hat sich geändert? Wir machen das ganze jetzt immer am Sonntag um 12 Uhr Mittags.

FalseBook

Das Monster. Es ist das wohl größte und komplexeste Plugin bei uns. Es ist in mehrer Unterplugins aufgeteilt, den Core, den Chat, die Minecarts, die ICs und die Blöcke. Alle seine Funktionen zu beschreiben würde den Blogeintrag, ja,

wohl den ganzen Blog sprengen. Wir konzentrieren uns deswegen auf seine allgemeine Funktionalitäten und beschreiben seinen Werdegang und vor allem, was daraus wird.

FalseBook ist ein Nachfolger Plugin für CraftBook. Zur Pionierzeit von Bukkit schrieb jeder sein eigenes Plugin für alles. Blumen sollen schneller wachsen? MineFlower wurde entwickelt. Minecarts waren zu langsam? Neues Plugin names MineCart. Sowas wie Gates, die auf und zu gehen? MineCat, zack! Und nicht nur eines. Zwei oder drei Gate Plugins existierten simultan. CraftBook war das erste Plugin, was mehrere Funktionen in einem bündelte. Und zwar viele. Soulsand wurde zu Glowstone, die Gates existierten, auch die Beschleunigung der Minecarts war mit drin. Und viel mehr wurde in einem Plugin aggregiert. Jedoch kam irgendwann die Entwicklungs in Stocken und da tauchte GeMoschen mit seinem ersten Projekt auf. FalseBook, am Anfang "nur ein Klon" von CraftBook entwickelte sich über die Jahre als "DAS" Plugin für jeden Server. Ok, heute ist CraftBook wieder lebendig. Aber FalseBook war mal groß, wie man am Thread mit 158 Seiten sehen kann.

Was macht es nun? Die Frage ist für Minestar eher, was macht es nicht? Da es so viel kann, haben sich ein paar User beim Warp "falsebook" die Mühe gemacht, euch alles zu zeigen und zu erklären.

tl_files/Blog-Dateien/UglyTech Erklaert/falsebookmuseum.png

Hier eine kurze Auflistung über der Funktionen der jeweilen Unterplugins:

  • Der Core bildet die unterste Ebene der MinestarLibrary. Es ist die Schnittstelle zu Bukkit und liefert mit einem Permissionsystem ein API für Rechte und Gruppen.
  • Block kümmert sich um die Gates, die Aufzüge, die Brücken und die Geschichte aus den Bookshelfs.
  • Chat ermöglicht eigene Channels und das Whispern.
  • Cart wird wohl am häufigstens für automatische Systeme genutzt und bietet die Möglichkeit, Minecarts effektiver zu steuern. So können diese automatisch ausge- und beladen werden, sie craften automatisch und und und. Ohne FalseBook würde es all diese tollen Systeme nicht geben.
  • Extra hat so kleine Gimmicks drine, wie Pumpkins an und aus machen und das gleiche mit Netherrack und Glowstone. Wirklich nur kleine Gimmicks, über die Jahre auch schon direkt von Minecraft übernommen.
  • IC ist die magische Welt von Redstone in Miniatur. Das Mooresche Gesetz

    besagt, dass sich alle 2 Jahre die Leistung von Computern verdoppelt, da man höher integrierte Chips bauen kann. Also auf der selben Fläche mehr Rechenleistung. Mit Minecraft werden zwar auch HDD oder 8 Bit Rechner simuliert, dafür werden aber riesen Flächen verwendet, da die Schaltungen immer die selbe Größe haben. Redstone braucht nunmal nen kompletten Block. Deswegen gilt das Mooresche Gesetz erst wieder, wenn man das IC Plugin betrachtet. Dort werden komplexe Schaltungen wie NAND-Gatter in einen Block statt in 1x2x3 Blöcke

    gepresst.

Beindruckender Weise hat außer GeMoschen selber niemand an diesem Plugin rumgeschraubt. Und er hat das mehrmals neu geschrieben. Der Quellcode ist closed Source, aber durch ein Leak wurde die Anzahl der Klassen und die Lines of Code mal veröffentlicht:

385 Klassen gibt es und ca. 45.000 Zeilen Java-Quellcode. Wie bereits gesagt, ein Monster halt.

Ein Monster, das stirbt. Das sterben wird. Mit dem Update auf 1.8 werden schon die IDs abgeschafft und irgendwie müssen wir es hinkriegen, dass FalseBook das übersteht. Ob es das tut, steht in den Sternen. Im schlimmsten Fall wird es für 1.8 kein Falsebook geben oder nur notwendige Teile. Es wäre sehr schade, aber die Abschaffung der IDs und der SubIDs und der extraData ist extrem tiefgreifend. Schilder und Co. werden anders behandelt. Damit wird das Update auf 1.8 sehr eklig und schwierig. Wir warten auf Bukkit für 1.8 und sehen dann weiter.

Mit dem API ist FalseBook defintiv tot. Es wird gekreuzigt für seine Verbrechen am Code, gehängt für seine Monströsität und anschließend verbrannt. Und es wird sich aus der Asche erheben. Schlanker, jünger und bereit für eine neue Ära. Es wird sich in die Hierachie der Plugins einreihen und diese nicht mehr anführen. Es wird vielleicht dann auch nicht mehr FalseBook heißen, vielleicht wird jedes Unterplugin ein eigenenständiges Plugin. Das wissen wir im Moment noch nich. Aber das sich was ändern wird, wissen wir bereits.

Was sich nicht ändern wird, dass nächste Woche die nächste Ausgabe von UglyTech erscheint. Und zwar, warum

es überhaupt 24 Plugins gibt und nicht eines.