Minecraft, das Sandbox-Spiel schlechthin, lädt seit Jahren Millionen von Spielern dazu ein, ihre eigenen Welten zu erschaffen, zu erkunden und zu gestalten. Ein entscheidender Faktor für die grenzenlose Kreativität von Minecraft ist die Möglichkeit, das Spiel durch Plugins zu erweitern. Diese Plugins, geschrieben in Java für Serverplattformen wie Paper, ermöglichen es, das Gameplay, die Mechaniken und die Möglichkeiten der Welt drastisch zu verändern. In diesem Artikel zeigen wir dir Schritt für Schritt, wie du dein eigenes Minecraft 1.21 Paper Plugin von Grund auf entwickelst.
Voraussetzungen
Bevor wir mit dem Programmieren beginnen, stelle sicher, dass du die folgenden Voraussetzungen erfüllst:
- Java Development Kit (JDK): Du benötigst ein JDK, vorzugsweise Version 17 oder höher, um den Code zu kompilieren. Du kannst es von der offiziellen Oracle-Website oder über eine Open-Source-Distribution wie OpenJDK herunterladen.
- Integrated Development Environment (IDE): Eine IDE wie IntelliJ IDEA, Eclipse oder VS Code erleichtert die Entwicklung durch automatische Code-Vervollständigung, Fehlererkennung und Debugging. IntelliJ IDEA Community Edition ist eine kostenlose und leistungsstarke Option.
- Maven oder Gradle: Diese Build-Automatisierungstools helfen dir, Abhängigkeiten zu verwalten, den Code zu kompilieren und das fertige Plugin zu erstellen. Wir werden in diesem Tutorial Maven verwenden.
- Paper Server: Du benötigst einen Paper Server der Version 1.21. Du kannst diesen von der PaperMC-Website herunterladen.
Schritt 1: Projekt erstellen
Starte deine IDE und erstelle ein neues Maven Projekt. Gib dem Projekt einen Namen (z.B. „MeinErstesPlugin”) und eine eindeutige Group ID (z.B. „com.example”). Die Artifact ID ist in der Regel der Name deines Plugins (z.B. „meinerstesplugin”).
Nachdem das Projekt erstellt wurde, musst du die pom.xml
-Datei bearbeiten, um die benötigten Abhängigkeiten hinzuzufügen. Füge die folgenden Abhängigkeiten hinzu:
<dependencies>
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21-R0.1-SNAPSHOT</version> <!-- Passe die Version an deine Paper-Version an -->
<scope>provided</scope>
</dependency>
</dependencies>
Dieser Codeabschnitt fügt die Paper API als Abhängigkeit hinzu. Der scope
auf provided
gesetzt, da der Paper Server die API zur Laufzeit bereitstellt und wir sie nicht in unser Plugin einbetten müssen.
Füge außerdem ein Build-Plugin hinzu, um sicherzustellen, dass dein Plugin als ausführbare JAR-Datei kompiliert wird:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>org.bstats</pattern>
<shadedPattern>your.package.name.shaded.bstats</shadedPattern> <!-- Ersetze your.package.name mit deinem Package Namen -->
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Stelle sicher, dass du your.package.name
durch den Package Namen deines Plugins ersetzt. Dieses Plugin fügt alle Abhängigkeiten in dein JAR-File ein, was es einfacher macht, es auf dem Server auszuführen.
Schritt 2: Plugin-Klasse erstellen
Erstelle eine neue Java-Klasse, die von der org.bukkit.plugin.java.JavaPlugin
Klasse erbt. Diese Klasse ist der Einstiegspunkt für dein Plugin. Nenne die Klasse beispielsweise MeinErstesPlugin
.
package com.example.meinerstesplugin;
import org.bukkit.plugin.java.JavaPlugin;
public class MeinErstesPlugin extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("MeinErstesPlugin wurde aktiviert!");
}
@Override
public void onDisable() {
getLogger().info("MeinErstesPlugin wurde deaktiviert!");
}
}
Die onEnable()
Methode wird aufgerufen, wenn das Plugin aktiviert wird, und die onDisable()
Methode, wenn es deaktiviert wird. In diesem Beispiel geben wir einfach eine Nachricht in der Serverkonsole aus.
Schritt 3: plugin.yml erstellen
Erstelle eine Datei namens plugin.yml
im src/main/resources
Verzeichnis deines Projekts. Diese Datei enthält Metadaten über dein Plugin, wie z.B. Name, Version und Haupteinstiegspunkt.
name: MeinErstesPlugin
version: 1.0
main: com.example.meinerstesplugin.MeinErstesPlugin
api-version: 1.21
description: Mein erstes Minecraft Plugin.
author: DeinName
name
: Der Name deines Plugins.version
: Die Version deines Plugins.main
: Der vollqualifizierte Name deiner Plugin-Klasse (Package-Name + Klassenname).api-version
: Die Minecraft API-Version, für die dein Plugin entwickelt wurde.description
: Eine kurze Beschreibung deines Plugins.author
: Dein Name oder der Name deines Teams.
Schritt 4: Kompilieren und Installieren
Führe den Befehl mvn clean install
in deinem Projektverzeichnis aus, um das Plugin zu kompilieren und eine JAR-Datei zu erstellen. Die JAR-Datei befindet sich im target
Verzeichnis. Kopiere diese JAR-Datei in den plugins
Ordner deines Paper Servers.
Starte den Paper Server. Du solltest die Nachricht „MeinErstesPlugin wurde aktiviert!” in der Serverkonsole sehen.
Schritt 5: Eine einfache Funktion hinzufügen (Beispiel: Einen Befehl registrieren)
Lass uns dem Plugin eine einfache Funktion hinzufügen: einen Befehl, der eine Nachricht an den Spieler sendet. Bearbeite die MeinErstesPlugin
Klasse wie folgt:
package com.example.meinerstesplugin;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class MeinErstesPlugin extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("MeinErstesPlugin wurde aktiviert!");
getCommand("hallo").setExecutor(this); // Registriere den Befehl "hallo"
}
@Override
public void onDisable() {
getLogger().info("MeinErstesPlugin wurde deaktiviert!");
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("hallo")) {
if (sender instanceof Player) {
Player player = (Player) sender;
player.sendMessage("Hallo, " + player.getName() + "!");
} else {
sender.sendMessage("Dieser Befehl kann nur von Spielern ausgeführt werden.");
}
return true; // Zeigt an, dass der Befehl erfolgreich ausgeführt wurde
}
return false; // Zeigt an, dass der Befehl nicht gefunden wurde
}
}
Dieser Code registriert den Befehl /hallo
. Wenn ein Spieler den Befehl ausführt, wird ihm die Nachricht „Hallo, [Spielername]!” gesendet. Wenn der Befehl von der Konsole ausgeführt wird, erhält die Konsole die Nachricht „Dieser Befehl kann nur von Spielern ausgeführt werden.”.
Kompiliere das Plugin erneut und kopiere die aktualisierte JAR-Datei in den plugins
Ordner. Starte den Server neu und gib im Spiel /hallo
ein. Du solltest die entsprechende Nachricht erhalten.
Schritt 6: Nächste Schritte
Dies ist nur ein einfaches Beispiel. Dein Plugin kann viel mehr! Hier sind einige Ideen für weitere Funktionen:
- Events: Reagiere auf Ereignisse im Spiel, wie z.B. das Betreten oder Verlassen eines Spielers, das Zerstören eines Blocks oder das Senden einer Nachricht.
- Konfiguration: Lade Einstellungen aus einer Konfigurationsdatei, um das Verhalten deines Plugins anzupassen.
- Datenbanken: Speichere Daten in einer Datenbank, um Persistenz zwischen Serverneustarts zu gewährleisten.
- API: Stelle eine API bereit, damit andere Plugins mit deinem interagieren können.
Die Paper API bietet eine Vielzahl von Möglichkeiten, um dein Minecraft-Erlebnis zu erweitern. Experimentiere, lese die Dokumentation und lasse deiner Kreativität freien Lauf!
Fazit
Die Entwicklung von Minecraft Paper Plugins ist ein spannendes Feld, das es dir ermöglicht, deine eigenen Ideen in die Minecraft-Welt zu integrieren. Mit den richtigen Werkzeugen und Kenntnissen kannst du beeindruckende und nützliche Plugins erstellen, die das Spielerlebnis für dich und andere verbessern. Dieser Leitfaden hat dir die Grundlagen gezeigt – jetzt liegt es an dir, weiter zu lernen und deine eigenen Minecraft-Abenteuer zu gestalten!