[Blockierte Grafik: http://i1200.photobucket.com/albums/bb334/MelozZ/javascriptenheader.png]
Hallo easy-scripting.net
Hiermit beginne ich eine Tutorial Reihe über Java. Ich erkläre nach und nach alle Funktionen von Bukkit, welches benutzt wird um Plug-Ins für Minecraft zu scripten.
Dafür benötigt ihr natürlich erst eine Programmier Umgebung. Da empfehle ich euch "Eclipse". Dieses findet ihr hier Download von Eclipse
Beim ersten Starten werdet ihr nach einer so gennanten "Workspace" oder "Workbench" gefragt. Dies ist der Ort wo eure Projekte gespeichert werden.
Ihr erstellt über "File -> New -> Java Protject" ein neues Java Projekt.Der Name ist in diesem Fall egal. Dann bildet sich im Bereich "Project Explorer" euer Projekt. Dieses öffnet ihr über den Pfeil daneben und erstellt im Ordner "src" ein neues Package. Dieses benennt ihr so: "me.DeinName.PluginName". Damit wäre dies erledigt. Da wir ja etwas mit dem Include Bukkit machen wollen, müssen wir es erstmal herrunterladen:
Bukkit 1.1 (Recommended Build) dl.bukkit.org/downloads/bukkit/get/00789_1.1-R6/bukkit.jar
Bukkit 1.2.3-R0.2 (Beta Version) dl.bukkit.org/downloads/bukkit….2.3-R0.2/bukkit-beta.jar
Diese speichert ihr da, wo ihr sie wiederfinden könnt. Dann macht ihr folgendes. Ihr macht auf euer Projekt, also das was ihr ganz am Anfang erstellt habt einen Rechtsklick, geht auf Properties und dann links auf Java Build Path und dann in den Tabs auf Libraries und dann auf den Button "Add Externals JARS" . Dort wählt ihr nun das Bukkit Include aus. So nun geht es wirklich mal ans schreiben.
Bisher sollte die Datei so aussehen:
Damit alles klappt müsst ihr aber hinter "public class NameEuresProjekts" folgendes schreiben, dass es so aussieht:
Dann werdet ihr bei "JavaPlugin" einen Fehler bekommen. Dieser sieht aus wie bei Microsoft Word. Undzwar ist dort eine gekringelte rote Linie. Haltet den Mauszeiger auf den Fehler und wählt die Lösung "import...."
Dann fügt er eine Zeile hinzu, welche das Java Plugin von Bukkit importiert. EIGENTLICH solltet ihr jetzt auch einen Fehler bei dem Namen eures Projekts bekommen. Bei mir wäre das jetzt "PluginGrundlage":
Bei dem Lilanen müsste der Fehler sein. Dort haltet ihr euren Mauszeiger drauf und wählt:
"Add unplemited Methodes"
Falls der Fehler bei euch NICHT kommt, müsst ihr einfach folgendes an euren Code ransetzen, damit es so aussieht:
Java-Quellcode
Wie man sieht steht dort, "TODO" was soviel heißt wie: "Muss noch getan werden" Also könnten wir doch eine Nachricht senden, den "onDisable" meint, wenn das Plug In deaktiviert wird und "onEnable" wenn es aktiviert wird. Da könnte man doch in der Bukkit Serverkonsole eine Nachricht senden lassen, oder? Also machen wir das mal.
Wir schreiben in die erste TODO Zeile:
Diese Zeile könnt ihr jetzt kopieren und im zweiten "TODO" Kommentar einfügen. ( Sätze mit einem Doppelslash davor sind Kommentare)
Das ist jetzt das absoloute Grundgerüst. Es sollte bisher so aussehen:
Java-Quellcode
- package me.Re3pEr.PluginGrundlage;
- import org.bukkit.plugin.java.JavaPlugin;
- public class PluginGrundlage extends JavaPlugin {
- @Override
- public void onDisable() {
- System.out.println("Hier kommt die Nachricht herrein") ;
- }
- @Override
- public void onEnable() {
- System.out.println("Hier kommt die Nachricht herrein") ;
- }
- }
Als nächstes schreiben wir den Teil, was passieren soll, wenn ein Kommando eingegeben wird. Das sollte dann so aussehen:
Alle Fehler die ihr erhaltet, könnt ihr durch importieren lösen.
Jetzt wandeln wir die Varibale Sender die sich oben befindet in eine Player Variable um mit der wir schon mehr anfangen können.
Dies geschichte mit:
Außerdem müsst ihr den boolean public vor seiner als falsch returnen, dh. wenn du etwas falsche eingibst sendet er es bukkit als falsch.
Der ganze müsste jetzt so aussehen
Jetzt erstellen wir unseren ersten eigentlichen Befehl. Wer sich schon ein wenig mit scripten auskennt soll nun mal meine Vorgabe durchlesen und dann versuchen es selber zu machen, bevor man die Lösung anschaut.
Vorgabe:
Du fragst ab ob das Kommando, von dem du übrigens den namen bekommst, "Kommando" ist und missachtest die Gross und Kleinschreibung.
Lösung:
if steht für eine Abfrage
cmd.getName heißt das er den namen vom Kommando bekommt
equaIsIngnoreCase bedeutet das die Gross und Kleinschreibung egal ist
Kommandoname kann auch alles andere sein. Das ist nämlich der Name deines Kommandos!
Aber bei diesem Kommando wollen wir es so haben, dass das Kommando nicht nicht erkkant wird wenn man z.B. "/Kommandoname Test" eingibt, also mit einem Argument sondern, dass er das Argument einfach missachtet. Dafür schreiben wir:
Dann drücken wir Enter und dort können wir herrein schreiben was passieren soll, wenn der Kommand betätigt wird, aber was man da machen kann erkläre ich nächstes Mal.
Wir machen nurnoch eine Sache
Wir erstellen die bekannte "plugin.yml" Datei, also die einstellungs Datei. Das geht so. Wir machen auf den Ordner "src" einen Rechtsklick, gehen auf "New -> Other -> File"
Diese nennen wir "plugin.yml"
Dort schreiben wir herrein:
Das wäre es auch schon. Bei Fragen fragt mich ruhig. Ich bin übrigens auch kein Profi. Fehler passieren :thumbsup:
Übersicht von allem was wir bisher geschaft haben:
Java-Quellcode
- package me.Re3pEr.PluginGrundlage;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.java.JavaPlugin;
- public class PluginGrundlage extends JavaPlugin {
- @Override
- public void onDisable() {
- System.out.println("Hier kommt die Nachricht herrein") ;
- }
- @Override
- public void onEnable() {
- System.out.println("Hier kommt die Nachricht herrein") ;
- }
- public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
- Player p = (Player)sender;
- if(cmd.getName().equalsIgnoreCase("Kommandoname")) {
- if(args.length == 0) {
- //TODO Was passieren soll, wenn das Kommando ausgeübt wird
- }
- }
- return false;
- }
- }
Viel Spaß!
wünscht
Re3pEr
Bilder:
[Blockierte Grafik: http://i1200.photobucket.com/albums/bb334/MelozZ/Untitled-1.png][Blockierte Grafik: http://i1200.photobucket.com/albums/bb334/MelozZ/adfasdf.png]
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Re3pEr ()