Die Programmierung von Plugins
Hallo und herzlich willkommen zu meinem ich glaube mittlerweile fünften Tutorial zu Bukkit, wie wir wohl alle hoffentlich wissen, basiert die Bukkit Serversoftware auf Java, das heißt wir müssen auch in Java coden und eine Entwicklungsumgebung nutzen welche auch Java unterstütz, daher nehme ich Eclipse.
Da ich euch in diesem Tutorial ich euch nicht Java beibringen möchte, empfehle ich euch die Tutorials von

.
Nun fangen wir mal an, ich entschuldige mich jetzt schon einmal das dass Tutorial evtl. zu kurz raten wird.
- Bukkit Server
- Eclipse(

,

)
- Bukkit Development Libary(

)
Zu erst erstellen wir einen neuen Order auf unserem Desktop welchen wir bspw. Bukkit Dev nennen. Dort ziehen wir folgendes rein: Eclipse Verknüpfung und die Bukkit Libary. Nun starten wir Eclipse, nun müsst ihr Standartmäßig eure Workspace auswählen, dort wählen wir unseren zuvor erstellten Ordner: Bukkit Dev auf dem Desktop aus.
Nun erstellen wir ein neues Java Projekt, dafür drücken wir oben auf "New" -> "Java Projekt" und passen alles an, dazu im Spoiler 2 Screens.
Hier erstellen wir ein neues Projekt
Hier passen wir die Einstellungen so an:
Dazu erstellen wir noch ein Package von welchem der Name folgendermaßen aufgebaut ist:
Bsp:
me.
rvs14.
MyPlugin
Muss so bleiben, nicht ändern!
Developername
Plugin Name/Projekt Name
PS: Ein Package ist in der gleichen Liste wie "Java Projekt"!
Nun erstellen wir eine neue Klasse in unserem eben gerade erstelltem Package mit dem Pluginname in meinem Fall MyPlugin.
Screen:
Nun wird es auch Zeit die Bukkit Libary zu importieren. Dies machen wir folgendermaßen: ihr macht Rechtsklick auf euren Projektnamen, dort steht dann: Properties, dann wählt ihr im Menü an der Seite : Java Build Path aus.
Jetzt müsste das Ganze so bei euch aussehen:
Dort klickt ihr auf "Add External Jars", sucht eure vorher heruntergeladene Libary raus und klickt auf OK.
Wir fangen nun an zu coden.
Ich habe die Klasse bereits fertig gecodet, aber ich habe sie Dokumentiert!
Hier der Code:
PHP Code:
package me.rvs14.MyPlugin;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.plugin.java.JavaPlugin; // Achtung ist ein manueller Import!
public class MyPlugin extends JavaPlugin { // Hier muss extens JavaPlugin hinzugefügt werden, nun werdet ihr einen Fehler bekommen das ihr etwas importieren müsst, daher klickt ihr auf die Glühbirne mit dem roten X und klickt dort auf Import Java Plugin.
@Override
public void onDisable() { // Methode welche aufgerufen wird wenn der Server bzw. das Plugin gestoppt wird
System.out.println("[MyPlugin] MyPlugin wurde deaktiviert!"); // Wird ausgegeben wenn der Server bzw. das Plugin gestoppt wird(in der Console!)
}
@Override
public void onEnable() { // Methode welche aufgerufen wird wenn der Server bzw. das Plugin gestartet wird
System.out.println("[MyPlugin] MyPlugin wurde aktiviert!"); // Wird ausgegeben wenn der Server bzw. das Plugin gestartet wurde(in der Console)
}
public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String [] args) { // Hier muss wieder viel Importiert werden, dieser Boolean muss immer da sein!
{
boolean succes = false; // Da hier der Command noch nicht ausgeführt wird, wird der Boolean False(falsch/unwahr) gemacht, dann wird ein Fehler geworfen.
Player player = (Player)sender; // Wieder importieren, hier wird der Spieler(Client) welcher den Command ausführt in die Variable eingespeichert.
PlayerInventory playerinventar = player.getInventory(); // Wieder importieren, hier wird das Inventar von dem zuvor deklaierten Spieler in eine Variable eingespeichert.
ItemStack zugebeneitems = new ItemStack(Material.DIAMOND_AXE, 63); // Wieder importieren, das Itemstack sollte jeder erfahrene Minecraft Spieler kennen, hier füllen wir diesen ItemStack mit 63 Diamantaxen.
if(cmd.getName().equalsIgnoreCase("test")) { // Wenn der Command /MyPlugin lautet, kommt eine Aktion welche im weiteren Code auftaucht. MyPlugin kann auch durch euren eigenen Command ersetzt werden.
playerinventar.addItem(zugebeneitems); // Hinzufügen des Itemstack ins Spielerinventar
player.sendMessage(ChatColor.GREEN + "Du hast soebenen 63 Diamant Axen erhalten!"); // Eine Nachricht an den Benutzer senden, dass er die Nachricht erhalten hat.
succes = true; // Erfolg auf wahr/richtig setzen
}else { // wenn ein Fehler aufgetreten ist
succes = false; // Erfolg auf falsch/unwahr setzen
}
return succes; // Boolean übergeben
}
}
}
Nun müssen wir noch in unserem src Ordner eine neue File erstellen, das machen wie mit dem Java Projekt, nur wie wählen halt File und geben dort als Name plugin.yml ein.
Bitte bearbeitet diese Datei in Eclipse, dafür müsst ihr die Datei oben über das Editorfeld ziehen.
Diese füllen wir folgendermaßen:
PHP Code:
name: MyPlugin
version: 1.0
main: me.rvs14.MyPlugin.MyPlugin
author: rvs14
website: http://www.mein-craft.net
commands:
test:
description: Ein testplugin
usage: /<command>
Das sollte alles selbsterklärend sein. Bei Commands steht "test", dort tragt ihr den Command von eurem Plugin ein!
Nun sind wir mit dem Coding fertig und müssen unser Plugin nurnoch exportieren.
Dies machen wir folgendermaßen, wir klicken auf den Namen unseres Projektes und drücken dort auf "Export".
Das müsste nun so aussehen:
Hier wählen wir nun Jar File aus,dann drücken wir auf "Next", danach passen wir alles wie hier an:
Den JarFile Pfad selber wählen und als Name euren PluginName wählen.
Ich hoffe euch hat das Tutorial gefallen, und es war nicht zu schwer verständlich, bei Fehlern bitte ich euch hier in den Thread zu schreiben, aber bitte bedenkt das ich noch selber Anfänger bin.
€: Gerade failt das Plugin, die plugin.yml ist wahrscheinlich nicht korrekt, ich fixxe das gleich, muss erstmal weg!