Minestom ist eine Open-Source-Bibliothek, die es Entwicklern ermöglicht, ihre eigene Minecraft-Serversoftware zu erstellen, ohne Code von Mojang.
Der Hauptunterschied zwischen Mojangs Vanilla-Server und einem Minestom-basierten Server besteht darin, dass unser Server standardmäßig keine Funktionen enthält! Wir verfügen jedoch über eine vollständige API, mit der Sie alles ganz einfach möglich machen können.
Dies ist eine Entwickler-API, die nicht für die Verwendung durch Endbenutzer gedacht ist. Das Ersetzen von Bukkit/Forge/Sponge durch dieses wird nicht funktionieren , da wir keine ihrer APIs implementieren.
Minestom wird nicht wie Bukkit/Forge/Sponge installiert. Da Minestom eine Java-Bibliothek ist, muss sie auf die gleiche Weise geladen werden, wie jede andere Java-Bibliothek geladen werden kann. Das bedeutet, dass Sie Minestom als Abhängigkeit hinzufügen, Ihren Code hinzufügen und selbst kompilieren müssen.
Minestom ist auf Maven Central verfügbar und kann wie folgt installiert werden (Gradle/Groovy):
repositories {
mavenCentral()
maven { url ' https://jitpack.io ' }
}
dependencies {
implementation ' net.minestom:minestom-snapshots:<???> '
}
Ein Beispiel für die Verwendung der Minestom-Bibliothek finden Sie hier. Alternativ können Sie das offizielle Wiki oder die Javadocs überprüfen.
Minecraft hat sich seit seiner Veröffentlichung stark weiterentwickelt, die meisten Server nutzen heutzutage nicht die Vanilla-Funktionen und haben sogar damit zu kämpfen. Unsere Zielgruppe sind diejenigen, die einen Server erstellen möchten, der nur wenig von den Vanilla-Funktionen profitiert. zB kreativ, kitpvp. Ziel ist es, mehr Leistung für diejenigen zu bieten, die sie benötigen. Mit anderen Worten: Es ist sinnvoll, Minestom zu verwenden, wenn die Implementierung aller fehlenden Vanilla-Funktionen weniger Zeit in Anspruch nimmt als das Entfernen aller Vanilla-Funktionen, die Sie verlangsamen.
Minestom ist nicht perfekt, unsere Entscheidungen machen es in manchen Fällen viel besser, in anderen schlechter.
Auch wenn wir nichts standardmäßig in das Spiel einbauen, vereinfachen wir die Art und Weise, wie Sie diese hinzufügen. Hier ist eine Vorschau.
Es ist unser Hauptkonzept: Welten eignen sich hervorragend zum Überleben mit Freunden, aber wenn sie größer werden, kann es unüberschaubar werden. Die besten Beispiele finden sich in Skyblock oder Minispielen, da man nicht in der Lage ist, jeden Teil richtig zu trennen und gezwungen ist, alles in Dateien zu speichern, ganz zu schweigen von dem Mehraufwand, der durch die darin enthaltenen unnötigen Daten entsteht. Instanzen sind eine einfache Lösung dafür, da sie jeden Block nur im Speicher haben, ihn im Handumdrehen kopieren und an einen anderen Player senden können, mit benutzerdefinierter Serialisierung und vielem mehr ...
Die Möglichkeit, Instanzen direkt von unterwegs erstellen zu können, ist ein Muss. Wir glauben, dass dies viele weitere Projekte vorantreiben kann.
Instanzen bringen auch Leistungsvorteile mit sich, im Gegensatz zu einigen anderen, die vollständig Single-Threaded sind oder möglicherweise einen Thread pro Welt verwenden, verwenden wir eine festgelegte Anzahl von Threads (Pool), um alle Chunks unabhängig von den Instanzen zu verwalten, was bedeutet, dass mehr CPU-Leistung verbraucht wird.
Minestom weiß standardmäßig nicht, was eine Truhe ist. Sie müssen ihm sagen, dass sie ein Inventar öffnet. Jeder „spezielle Block“ (der nicht nur visueller Natur ist) benötigt einen speziellen Handler. Nachdem Sie diesen Handler angewendet haben, haben Sie einen Block, der einfach überall platziert werden kann. Allerdings sind alle Blöcke optisch vorhanden, sie haben jedoch standardmäßig keine Interaktion.
Die Begriffe „passive“ oder „aggressive“ Monster gibt es nicht. Niemand hält dich davon ab, ein fliegendes Huhn in Spieler zu stürzen, die zu nahe kommen. Das ist mit NMS aufgrund der Verschleierung und der großen Vererbung ein echtes Durcheinander.
Es ist ein Bereich, in dem sich Minecraft stark weiterentwickelt hat. Inventare werden heute häufig als Client-Server-Schnittstelle mit anklickbaren Elementen und Rückrufen verwendet. Wir unterstützen diese Interaktionen nativ, ohne dass Sie Ihre Lösung programmieren müssen.
Befehle sind die einfachste Art der Kommunikation zwischen Clients und Server. Da Minecraft 1.13 eine neue Bibliothek mit dem Namen „Brigadier“ integriert hat, haben wir dann eine API integriert, die darauf ausgelegt ist, das volle Potenzial der Args-Typen zu nutzen.
#mcdevs
– Protokoll- und Dateiformatforschung.Sehen Sie sich die beitragende Datei an! Alle WIP-Funktionen werden als PR-Entwürfe in der Vorschau angezeigt
Dieses Projekt ist unter der Apache-Lizenz Version 2.0 lizenziert.