So verwenden Sie NMS in Bukkit

So verwenden Sie NMS in Bukkit

Obwohl Minecraft verschiedene Plugins begrüßt (mit denen Sie Ihr Gameplay -Erlebnis verändern können) sind einige Elemente des Spiels vor Plugin -Manipulation abgeschirmt. Netz.Minecraft.Server (NMS) ist eines dieser geschützten Pakete, da er einen wichtigen Servercode für das Spiel enthält. Dieser Code stammt direkt von den Entwicklern von Minecraft, Mojang, und soll den Spielern nicht zugänglich sein.

Mit Bukkit können Spieler eine Abstraktionsschicht um den NMS -Code erstellen. Auf diese Weise können sie Plug-Ins entwickeln, die mit dem Code des Servers interagieren, ohne direkte Änderungen an der Codebasis vorzunehmen, die für das Spielen des Spiels unerlässlich sind. Stellen Sie sich es wie ein Fenster vor, in dem Sie den Code, den Sie in Ihrem Plugin verwenden möchten, ansehen, aber auch als Barriere fungiert, das Sie daran hindert.

Lassen Sie uns untersuchen, wie Sie Bukkit mit Minecrafts NMS verwenden können.

Bevor Sie anfangen - was Sie über Bukkit wissen müssen

Bukkit ist eine API, mit der Sie Plugins erstellen und verwenden können, mit denen Sie den Multiplayer -Aspekt von Minecraft erleiden können. Zumindest war es. Die letzte Version von Bukkit erschien 2016 und wurde seitdem eingestellt, um Platz für eine andere API namens Spigot zu machen. Während er ähnlich wie Bukkit arbeitet, bietet es eine bessere Serverleistung.

Durch die Verwendung von Bukkit für Ihre Plugins müssen Sie beide eine veraltete Version von Minecraft spielen und akzeptieren, dass Bukkit nicht so gut ist wie die Ersatz -API. Unter der Annahme, dass Sie gerne diese Opfer akzeptieren, sind hier die einzigen Dinge, die Sie brauchen:

  • Java Development Kit (JDK) 7 oder höher, wobei die meisten JDK 8 empfohlen werden.

Damit können Sie einige Plugins erstellen.

So erstellen Sie Bukkit -Plugins für Minecraft

Bevor Sie mit Bukkit beginnen können, um auf Minecrafts NMS zuzugreifen, müssen Sie die API als Abhängigkeit hinzufügen, eine Hauptklasse festlegen, mit der Bukkit mit dem von Ihnen erstellten Plugin interagieren kann, und Bukkit mit den Informationen zur Verfügung stellen, die Sie benötigen, um Ihr Plugin in das Plugin zu laden Spiel. Jeder Schritt erfordert eine Codierung, wobei die Beispiele, die aus dem RIP -Tutorial kommen.

Schritt 1 - Fügen Sie Bukkit als Abhängigkeit hinzu

In der Vergangenheit könnten Sie Bukkit als Abhängigkeit in Minecraft hinzufügen, indem Sie den Bukkit herunterladen.JAR -Datei von Bukkit Repository und Hinzufügen zum Klassenpfad Ihres Projekts. Diese Option ist nicht mehr verfügbar, da das Repository nicht mehr zugänglich ist.

Zum Glück gibt es eine alternative Methode, die den Pom Ihres Spiels nutzt.XML -Datei. Öffnen Sie die Datei und fügen Sie die folgenden Zeilen hinzu:

  Spigot-Repo https: // Hub.Spigotmc.org/nexus/content/repositories/snapshots/      Org.Bukkit Bukkit AUSFÜHRUNG bereitgestellt   

Schritt 2 - Erstellen Sie die Hauptklasse Ihres Plugins

Ihr Plugin muss in der Lage sein, eine einzelne Instanz seiner Hauptklasse zu erstellen, mit der „Javaplugin“ erweitert wird, damit Sie das Plugin im Spiel erkannt und Sie verwenden können, wenn Sie im Spiel sind. Stellen Sie sich diese Hauptklasse als die Tür vor, durch die Bukkit eintreten kann, um das Plugin sowohl zu laden als auch zu manipulieren. Die meisten geben der Hauptklasse ihres Plugins den gleichen Namen wie das Plugin selbst, sodass es einfacher ist, die Hauptklasse beim Codieren zu beziehen.

Der folgende Beispielcode aus RIP Tutorial bietet ein Beispiel für eine Hauptklasse für ein Plugin mit dem Namen "Myplugin:"

Paket com.Beispiel.Myplugin; // $ Topleveldomain.$ Domain.$ Pluginname; import org.Bukkit.Plugin.Java.Javaplugin; public Final Class Myplugin erweitert Javaplugin @Override public void OnEnableable () // aufgerufen, wenn das Plugin aktiviert ist, getLogger ().Info ("OnEnable wurde aufgerufen!"); @Override public void ondisable () // Anrufe, wenn das Plugin deaktiviert ist, getLogger ().Info ("Ondisable wurde aufgerufen!"); 

Zugriff auf Ihr Plugin aus einer anderen Klasse

Möglicherweise möchten Sie über eine andere Klasse auf Ihr Plugin zugreifen als die Hauptklasse, die Sie dafür erstellen, was für den Zugriff auf mehrere Plugins in einem einzigen Minecraft -Spiel hilfreich sein könnte.

Dazu müssen Sie zunächst eine Instanz der Hauptklasse speichern, die Sie mit Bukkit erstellt haben, damit andere Klassen darauf zugreifen können. Auch hier stammt der folgende Beispielcode aus dem RIP -Tutorial und verwendet den Namen „Myplugin“:

öffentliche Klasse Myplugin erweitert Javaplugin (private statische Myplugin -Instanz; // Effektiv endgültige Variable mit der Instanz Ihres Plugins öffentlich myplugin () if (myplugin.Beispiel != null) // unnötiger Scheck, stellt jedoch sicher, dass Ihr Plugin nur einmal initialisiert wird. Neuen Fehler werfen ("Plugin bereits initialisiert!"); Myplugin.Instance = this; // Der Konstruktor eines Plugins sollte erst einmal aufgerufen werden.  // Ihr anderer Code… 

Sobald Sie die Instanz haben, können Sie mit dem Befehl „getInstance () auf Ihre Hauptklasse (über Bukkit erstellt) zugreifen. Hier ist ein Beispiel dafür mit dem „Myplugin“ -Klass von RIP Tutorial:

öffentliche Klasse myotherClass public void doomething mitMainClass () Myplugin.bekomme Instanz().getLogger ().Info ("Wir haben gerade Myplugin verwendet");  

Schritt 3 - Erstellen Sie Ihr Plugin.YML -Datei

Ein Plugin.Die YML -Datei enthält wichtige Informationen zu Ihrem Plugin, dh sie dient als grundlegende Konfigurationsdatei des Plugins. Ohne diese Datei hat Bukkit nicht über die Informationen, die es benötigt, um Ihr Plugin in Minecraft zu laden, was dazu führt, dass das Plugin nicht geladen wird und das Spiel wahrscheinlich abstürzt.

Diese Datei sollte die folgenden Details enthalten:

  • Name - Dies ist der Name, den Sie Ihrem Plugin gegeben haben (ich.e., "Myplugin" von RIP Tutorial) und es wird in Protokollnachrichten und in Ihrer Pluginliste angezeigt.
  • Ausführung - Verwenden Sie dieses Feld, um den Versionsverlauf des Plugins zu bezeichnen, beginnend mit 1.0.0 und nach oben, während Sie das Plugin ändern oder bearbeiten.
  • Hauptsächlich - Enthält den Namen der Hauptklasse des Plugins, die „Javaplugin“ erweitert, sodass Bukkit das Plugin eingeben kann. Im RIP -Tutorial -Beispiel wäre dieser Name „Paket com.Beispiel.Myplugin “, den Sie im obigen Hauptklassencode sehen können.
  • Beschreibung - Eine grundlegende Beschreibung dessen, was Ihr Plugin tut.
  • Autor - Sie können einen einzelnen Autor oder mehrere Autoren haben, wobei letztere wie folgt mit quadratischen Klammern und Kommas bezeichnet werden: [Autor1, Author2, Author3].
  • Mitwirkende - Sie werden diesen Abschnitt verwenden, um jeden zu bemerken, der zu Ihrem Plugin beigetragen hat, wobei die Formatierung mit dem Abschnitt „Autoren“ identisch ist.
  • Webseite - Wenn Sie eine Website zum Schließen haben oder Personen mit der Seite des Plugins oder mit dem Github -Repository verlinken möchten, können Sie die URL hier eingeben.
  • Api-Version - Geben Sie die Version der Bukkit -API ein, die Sie hier verwenden. Wenn Sie keine API -Version eingeben, geht Minecraft davon aus, dass sie ein Legacy -Plugin lädt. Das Plugin funktioniert möglicherweise weiter.

Das Folgende ist ein Beispiel für ein Plugin.YML -Datei basierend auf den in dem in diesem Artikel verwendeten RIP -Tutorial -Code verwendeten Namenskonventionen:

Name: Myplugin Version: 1.0.0 Haupt: Paket com.Beispiel.Myplugin Beschreibung: Ein Test -Plugin für Minecraft Autor: RIP Tutorial Website: https: // riptutorial.com/bukkit api-Version: 1.17 

Ist Bukkit richtig für den Zugriff und die Verwendung von NMS?

Damit haben Sie eine Bukkit -Abhängigkeit erstellt, eine Hauptklasse erstellt, um als Bukkit -Tür in das Plugin zu dienen und ein Plugin zu haben.YML -Datei, die Bukkit verwenden kann, um zu sehen, was das Plugin macht. Möglicherweise möchten Sie dies jedoch nicht tun, da Bukkit so veraltet ist, dass Sie eine sehr alte Version von Minecraft ausführen müssen, um sie effektiv zu verwenden. Die meisten sind bereits zum Sprigot übergegangen, was den größten Teil dessen widerspiegelt, was Bukkit getan hat, während sie eine bessere Leistung anbieten.

Wenn Sie noch Bukkit verwenden möchten, um auf Plugins zuzugreifen? Welche Art von Plugins verwenden Sie, um Ihr Minecraft -Erlebnis zu verbessern?? Erzählen Sie uns alles darüber im Kommentarbereich unten.