So erstellen Sie ein Spigot-Plug-In (für Java-Anfänger)

Überblick

Hier erstellen wir ein Spigot-Plug-In in Java. Da es für Java-Anfänger ist, werden wir aus den Grundkenntnissen von Java erklären. Wenn Sie zuvor Java verwendet haben, überspringen Sie es bitte entsprechend. Außerdem verwenden wir hier JDK8, die derzeit empfohlene Umgebung für Minecraft.

Vorbereitung zur Vorbereitung

Vorsicht JDK8: Ein Entwicklungskit für eine Programmiersprache namens Java, die Minecraft erstellt. Dieses Mal werde ich Version 8 verwenden. IntelliJ IDEA: Eine Software namens Comprehensive Development Environment (IDE) zum Schreiben von Programmen. (Im Folgenden IDEE) Es gibt andere Dinge wie Eclipse und NetBeans, aber da der Autor IDEA verwendet, werden wir in diesem Kurs auch IDEA verwenden. Informationen zur japanischen Lokalisierung finden Sie unter hier usw. Da die Umgebung des Autors ins Japanische übersetzt ist, werden Menüpunkte usw. mit japanischen Namen erklärt. Der Autor ist eine Windows-Umgebung. Sie sollten in der Lage sein, das gleiche Verfahren auf einem Mac auszuführen, aber die Details sind unbekannt. Überprüfen Sie dies daher selbst.

Vorbereitung

Wenn Sie IDEA starten, wird der folgende Bildschirm angezeigt (Sie werden gefragt, ob Sie die Einstellungen beim ersten Start importieren möchten, aber "Nicht importieren" unter den Optionen ist in Ordnung.) IDEA.トップ画面 Drücken Sie "Plug-in" unter "Konfiguration" des Zahnrads unten rechts. Ein Eingabefeld wird angezeigt, suchen Sie also nach "minecraft". image.png Hier installieren Sie bitte "Minecraft Development", das oben links angezeigt wird. Nach der Installation werden Sie aufgefordert, IDEA neu zu starten. Starten Sie es daher neu.

Wenn Sie es nicht sehen, versuchen Sie "Suche aus dem Repository". Die hier installierte Minecraft-Entwicklung ist eine Erweiterung von IDEA, mit der Sie Vorlagen wie das Spigot-Plug-In erstellen können.

Erstellen Sie eine Vorlage

Grundeinstellung

Jetzt ist es Zeit, das Programm zu schreiben. Klicken Sie auf Neues Projekt erstellen. Wenn das "Project SDK" oben keines ist, wählen Sie den Ordner "java_home" unter "Neu" aus. (Für Windows C: \ Programme \ Java \ jdk1.8.0_181 usw.) Wenn Minecraft Development erfolgreich installiert wurde, sollte in der Liste links ein Element namens "Minecraft" angezeigt werden. Klicken Sie darauf. image.png Überprüfen Sie von hier aus das Spigot Plugin und klicken Sie auf Weiter.

Einstellungen erstellen

image.png Legen Sie auf diesem Bildschirm den Build fest.

Gruppen-ID

Die Gruppen-ID gibt die Gruppe an, zu der das Plug-In gehört. Gruppen können nach Autor, Funktion usw. unterteilt werden, aber alles ist in Ordnung, solange Sie sich nicht mit anderen Personen überschneiden. Hier ist es com.github.rona_tombo aus der umgekehrten Reihenfolge des GitHub-Domainnamens des Autors. Die einzigen Zeichen, die als Notiz verwendet werden können, sind alphanumerische Zeichen halber Breite, Punkt "." Und Unterstrich "_".

Artefakt-ID

Die Artefakt-ID ist die ID, die das Projekt auszeichnet. Normalerweise ist es in Ordnung, den Plug-In-Namen zu verwenden.

Ausführung

Alles wird gut Gradle Das Auswahlmenü unten rechts wurde vom Standard-Maven in Gradle geändert. Ich kann in beiden Fällen Plug-Ins erstellen, aber das ist mein Hobby.

Unterschied zwischen Maven und Gradle Bei beiden handelt es sich um Tools zur Auflösung von Abhängigkeiten, mit denen Sie die Version eines Programms verwalten können, das von einer anderen Person erstellt wurde. Der Autor ist nicht gut darin, Maven mit XML einzustellen, was für Menschen schwer zu lesen ist. Es gibt viele Dinge, die Gradle tun kann.

Spigot Settings image.png Hier setzen wir den Stecker selbst. Plugin Name Legen Sie den Namen des Plug-Ins fest. Es können nur alphanumerische Zeichen halber Breite verwendet werden.

Plug-In-Version

Alles wird gut Main Class Name Geben Sie die Hauptklasse (später beschrieben) des Plug-Ins an. Wenn Sie es nicht wissen, können Sie die Standardeinstellungen beibehalten. Minecraft Version Geben Sie die Zielversion von Minecraft an. Die aktuellste Version ist 1.13.2, aber ich habe immer noch das Gefühl, dass sie instabil ist. Deshalb werde ich sie hier mit 1.12.2 entwickeln.

Optionale Einstellung Das Folgende funktioniert ohne Einstellung, es ist jedoch besser, es beim Verteilen oder Veröffentlichen festzulegen.

Erläuterung

Es ist buchstäblich eine Beschreibung des Plug-Ins. Es können nur alphanumerische Zeichen halber Breite verwendet werden. Authors Der Name des Autors. Wenn es mehr als eine gibt, trennen Sie diese durch Kommas mit halber Breite ,. WebSite Geben Sie die URL an, unter der das Plug-In veröffentlicht wird. LogPrefox Geben Sie das Präfix an, das an den Anfang des Protokolls angehängt ist. Wenn leer, wird der Steckername verwendet. Load Before Geben Sie den Namen des Plug-Ins an. Dieses Plug-In wird vor dem hier angegebenen Plug-In geladen. Wenn Sie mehr als eine angeben, trennen Sie diese durch Kommas mit halber Breite ,. Depend Gibt das Plug-In an, von dem dieses Plug-In abhängt. Das hier angegebene Plug-In wird vor diesem Plug-In geladen. Wenn das hier angegebene Plug-In nicht installiert ist, tritt beim Start des Servers ein Fehler auf. Soft Depend Die Hauptfunktion ist dieselbe wie Abhängig. Der Unterschied besteht jedoch darin, dass auch dann kein Fehler auftritt, wenn das hier angegebene Plug-In nicht installiert ist. Load at Wird eingestellt, wenn das Plug-In geladen wird. Wenn alle Welten in Post World gelesen wurden Dies ist der Zeitpunkt, an dem der Server beim Start gestartet wird (bevor die Welt gelesen wird).

Projekt Einstellungen

image.png Wenn Sie nur den Projektnamen festlegen, können Sie ihn unverändert lassen.

Wenn Sie hier auf Fertig stellen klicken, wird der folgende Bildschirm angezeigt. image.png

Es ist in Ordnung so wie es ist.

Code schreiben

image.png Bitte warten Sie, hier können Sie von nun an das Programm schreiben. Tatsächlich hat Minecraft Develop bereits den minimal erforderlichen Code geschrieben, ohne den Code zu ändern. Mit anderen Worten ... ** Es funktioniert bereits als Plug ** (obwohl es ein Plug ist, der nichts tut, weil er natürlich keine Funktionen schreibt).

Lassen Sie uns nun die Grundlagen der Java-Grundlagen studieren.

Tutorial.java


package com.github.rona_tombo.tutorial;

Dies zeigt an, dass eine Klasse namens Tutorial (später beschrieben) zu einem Paket (einer Sammlung von Klassen) namens com.github.rona_tombo.tutorial gehört.

Tutorial.java


import org.bukkit.plugin.java.JavaPlugin;

Es ist eine Erklärung, dass wir die Klasse "org.bukkit.plugin.java.JavaPlugin" verwenden werden. Auf diese Weise wird der Paketname für den Import usw. verwendet.

Tutorial.java


public final class Tutorial extends JavaPlugin{
}

Dies ist die Klassendeklaration, die zuvor angezeigt wurde. Eine Klasse ist eine Einheit der Grundfunktionalität von Java. Klassen können Mitglieder wie Methoden (siehe unten) und Felder (siehe unten) haben. Auf public kann von überall zugegriffen werden, final ist eine Klasse, die nicht" geerbt "werden kann (später beschrieben), Tutorial ist ein Name und erweitert ist eine Klasse namens JavaPlugin.

Die Vererbung besteht darin, eine Klasse basierend auf einer bestimmten Klasse zu erstellen und die Funktion der Klasse hinzuzufügen oder neu zu schreiben. (Wenn Sie im Detail erklären, wird es Platz beanspruchen, also werde ich eine andere Gelegenheit nutzen)

Tutorial.java



	@Override
	public void onEnable(){
		// Plugin startup logic

	}

	@Override
	public void onDisable(){
		// Plugin shutdown logic
	}

Dies ist in der Tutorial-Klasse. Dies ist die Methode. Die Methode ist der Teil, der in der Klasse definiert ist und der die Verarbeitung tatsächlich ausführt. Diese beiden Methoden werden in JavaPlugin definiert, der Vererbungsquelle der Tutorial-Klasse. Die Verarbeitung wird jedoch durch Hinzufügen von "@ Override" neu geschrieben. public bedeutet, dass Sie es von überall aus verwenden können. void bedeutet, dass es nach Abschluss keine Ergebnisse mehr zurückgibt. () Wird am Ende jeder Methode angehängt, aber in einigen Fällen werden die zur Verarbeitung verwendeten Informationen hier als Argument übergeben.

Spielen wir also hier mit dem Code. Ändern Sie onEnable und onDisable wie folgt.

Tutorial.java


    @Override
    public void onEnable(){
        // Plugin startup logic
        getLogger().info("Das Plug-In ist aktiviert!");
    }

    @Override
    public void onDisable(){
        // Plugin shutdown logic
        getLogger().info("Das Plug-In wurde deaktiviert!");
    }

getLogger ist eine Methode zum Hinterlassen eines Protokolls auf der Konsole. Gewöhnliche Methoden verwenden Instanzvariablen, die eine Klasse instanziieren (das ist leichter zu merken). Instanzvariablenname.methodenname (Argument); Die in Ihrer Klasse oder Ihrer übergeordneten Klasse definierten Methoden können jedoch ohne Instanziierung nur mit dem Methodennamen aufgerufen werden. Der Rückgabewert der Methode (der nach der Verarbeitung zurückgegebene Wert) kann in eine Variable gepackt und von dort aus weitere Methoden verbunden werden. Hier bleibt das Protokoll wie folgt: "Das Plug-In wurde aktiviert!" Beim Laden des Plug-Ins und "Das Plug-In wurde deaktiviert!" Beim Deaktivieren.

Wenn Sie dies tun können, lassen Sie es uns tatsächlich ausführen. Für Windows gibt es hier eine Sache zu tun. image.png Doppelklicken Sie links im Baum auf "build.gradle", um es zu öffnen. Fügen Sie Folgendes unter "Zielkompatibilität" hinzu.

build.gradle


tasks.withType(AbstractCompile)*.options*.encoding = tasks.withType(GroovyCompile)*.groovyOptions*.encoding = 'UTF-8'

Wenn Sie können, klicken Sie auf das Dreieck oben rechts im Fenster. image.png

Dadurch wird das Plug-In erstellt. Wenn die Meldung "BUILD SUCCESS FUL" angezeigt wird, ist der Build abgeschlossen. Wenn Sie die Standardeinstellung beibehalten, sollten Sie eine JAR-Datei mit dem Namen "Plugin name-version.jar" in "C: \ Benutzer \ Benutzername \ IDEA-Projekte \ Projektname \ build \ lib " haben, also 1.12 Versuchen Sie, Spigot im Ordner .2 Spigot-Plugins zu starten. Versuchen Sie auch, den Server mit / stop zu stoppen. Wenn das Protokoll auf der Konsole angezeigt wird, ist es erfolgreich.

Zusammenfassung

Haben Sie die Grundkenntnisse von Java verstanden? Dieses Mal mache ich nur die sehr einfache Sache, das Protokoll auf der Konsole anzuzeigen, aber ab dem nächsten Mal werde ich auf Befehle reagieren, wenn ich einen Block drücke usw. Ich möchte verschiedene Dinge tun. Bis zum Ende Danke fürs Lesen. Wir freuen uns auf Ihre weitere Unterstützung in dieser Serie.

Recommended Posts

So erstellen Sie ein Spigot-Plug-In (für Java-Anfänger)
Spigot (Papier) Einführung in die Erstellung eines Plug-Ins für 2020 # 01 (Umgebungskonstruktion)
Wie man Python für Anfänger schneller macht [numpy]
[Blender] So erstellen Sie ein Blender-Plug-In
Wie man ein Dialogsystem für Anfänger erstellt
Verwendung von Datenanalysetools für Anfänger
So erstellen Sie ein QGIS-Plug-In (Paketerzeugung)
So erstellen Sie das Substance Painter Python-Plugin (Einführung)
[Für Anfänger] Wie man Programmierung studiert Private Memo
So konvertieren Sie den Python # -Typ für Super-Anfänger von Python: str
[Für Anfänger] So studieren Sie den Python3-Datenanalysetest
So führen Sie einen Komponententest durch Teil 2 Klassendesign zum Testen
Python # So überprüfen Sie Typ und Typ für Super-Anfänger
Wie man das Bukkit Plugin studiert
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 7 Erstellen eines Moduls
[Für Anfänger] Verwendung der for-Anweisung unter Linux (Variablen usw.)
Implementieren von 100 Data Science-Schlägen für Anfänger in Data Science (für Windows 10 Home)
TensorFlow-Lernmethode für Profis der freien Künste und Python-Anfänger
Wie erstelle ich ein Python-Paket (geschrieben für Praktikanten)
So konvertieren Sie den Python # -Typ für Python-Superanfänger: int, float
Für Anfänger, wie man mit häufigen Fehlern in Keras umgeht
Wie erstelle ich eine japanisch-englische Übersetzung?
[Für Nicht-Programmierer] Wie man Kaggle läuft
Wie man einen lockeren Bot macht
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
[Blender] So erstellen Sie Blender-Skripte mehrsprachig
Wie erstelle ich einen Crawler?
[Für Anfänger] So implementieren Sie O'reilly-Beispielcode in Google Colab
So führen Sie einen Komponententest durch Teil 1 Entwurfsmuster zur Einführung
[Unity] So führen Sie ML-Agents Release 8 auch für transzendentale Anfänger aus [Windows]
Wie man für den Deep Learning Association G-Test (für Anfänger) lernt [Version 2020]
So machen Sie Word Cloud-Zeichen monochromatisch
Wie man Selen so leicht wie möglich macht
So erstellen Sie mit YOLO in 3 Stunden ein Modell für die Objekterkennung
[Python] Wie man eine Klasse iterierbar macht
So erstellen Sie eine * .spec-Datei für pyinstaller.
[Python] Organisieren der Verwendung für Anweisungen
[Cocos2d-x] So erstellen Sie eine Skriptbindung (Teil 2)
So installieren Sie das Windows-Subsystem für Linux
Anfänger lesen "Einführung in TensorFlow 2.0 für Experten"
So machen Sie Multi-Boot-USB (Windows 10-kompatibel)
Verwendung von "deque" für Python-Daten
So erstellen Sie einen benutzerdefinierten Backtrader-Indikator
Wie erstelle ich eine Pelican Site Map?
[Cocos2d-x] So erstellen Sie eine Skriptbindung (Teil 1)
Verwendung der Fingerabdruckauthentifizierung für KDE
Lassen Sie uns ein Backend-Plug-In für Errbot erstellen
Memo Nr. 4, dass Python-Anfänger "Detaillierte Erklärung der Python-Grammatik" lesen
Der schnellste Weg für Anfänger, um Python zu beherrschen
Eine Einführung in die objektorientierte Programmierung für Anfänger von Anfängern
Für Anfänger, um eine Anaconda-Umgebung aufzubauen. (Memo)
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (8)
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (1)
Python für Super-Anfänger Super-Anfänger Python # Einfach loszuwerden