ich bin ziemlich neu in der Welt des java programmierens und wollte mich mal mit einem
kleinen Minecraft Plugin für Java versuchen. Vorher habe ich ein wenig in Visual Basic Programmiert.
Meine Idee für das Plugin war, das es für jeden Spieler der auf dem server ist, einen neuen Timer erstellt wird und der dann Runterzählt. Z.B. wenn ein Spieler neu auf den server kommt, dass dann ein Counter runterzählt. 50 Tage lang. Und Soball er runtergezählt hat soll für den jeweiligen spieler ein Befehl ausgegeben werden wie das der Spieler dann 5 Diamanten bekommt. Hat jemand erfahrung in sachen Minecraft Plugin Programmierung? Würde mich sehr freuen wenn mir jemand dabei helfen würde, da ich das sehr warscheinlich nicht alleine schaffen werde !! Und ich wil KEINEN vollständigen quelltext, etc. haben, da der lernfactor dabei ja gleich 0 ist.
wird das aber nie aufhören =)
Es wundert mich tatsächlich das noch keiner eine Scriptsprache rausgebracht hat mit der man bukkit mal vernünftig ansprechen kann, so toll ist das Framework nämlich nicht einmal und wie du schon gesagt hast, eine vollwertige programmiersprache für plugins bei einem Spiel ist eine ziemlich harte Lernkurve.
[EDIT]ich gehe mal von Bukkit aus, das recompiling und da reinfrickeln um Mods zu entwickeln was auch manche machen ist ja noch unschöner.[/EDIT]
Viel schlimmer finde ich allerdings das (ich weiß nicht ob es in der aktuellen Version noch so ist), Minecraft Out-of-Memory bis zum Benutzer hochknallen lässt, ohne daraus eine brauchbare Fehlermeldung zu machen wie "Zu große Bilder oder Zusatzdateien verwendet, geben sie Minecraft mehr Arbeitsspeicher zur Verfügung, default startet es nur mit xyz mb memory".
@TO: Das dürfte für den Anfang zu komplex für dich sein. Erstmal solltest du Grundlagen von Java haben, den wie du schon erkannt hast: alleine wirst du das momentan nicht schaffen und hier findest du wohl eher wenige, die sich mit Bukkit auskennen. Auf große Hilfe(bzgl. Bukkit) wirst du hier wohl nicht bauen können. Da empfiehlt sich dann deren Forum, wobei du dort wahrscheinlich auch zu hören bekommst: lerne erstmal Java.
----
! DAS JAVA-FORUM IST KEIN GEEIGNETER ORT FÜR FRAGEN RUND UM MINECRAFT !
In dem Post ging es nicht "Rund um Minecraft" sondern um das Entwickeln von Plugins. Diese werden in Java geschrieben, also passt das zu dem Forum. Prinzipiell sind solche Postings hier also nichts schlimmes, auch wenn sich hier das bukkit-Forum mehr eignen würde, weil dort eben jeder mit Bukkit arbeitet (geh ich mal von aus). Hier allerdings dürfte das wohl nur ein sehr kleiner Bruchteil sein.
ich bin ziemlich neu in der Welt des java programmierens und wollte mich mal mit einem
kleinen Minecraft Plugin für Java versuchen. Vorher habe ich ein wenig in Visual Basic Programmiert.
Meine Idee für das Plugin war, das es für jeden Spieler der auf dem server ist, einen neuen Timer erstellt wird und der dann Runterzählt. Z.B. wenn ein Spieler neu auf den server kommt, dass dann ein Counter runterzählt. 50 Tage lang. Und Soball er runtergezählt hat soll für den jeweiligen spieler ein Befehl ausgegeben werden wie das der Spieler dann 5 Diamanten bekommt. Hat jemand erfahrung in sachen Minecraft Plugin Programmierung? Würde mich sehr freuen wenn mir jemand dabei helfen würde, da ich das sehr warscheinlich nicht alleine schaffen werde !! Und ich wil KEINEN vollständigen quelltext, etc. haben, da der lernfactor dabei ja gleich 0 ist.
Für Minecraft plugins brauchst du nicht ganz soooo viele kenntnisse was du aber aufjedenfall brauchst du
Java:
Schleifen
If-Blöcke (if ,else , else if)
Integer
Double
Strings
Hashmap oder ArrayListen
API von Bukkit verstehen, die events sind meistens aber deutlich benannt
Du musst wissen wie man bestimmte Informationen in ein textdokument oder eine .yml datei schreibst.
Bukkit:
Grundgerüsst für plugins (beginnt nicht mit nem main void)
plugin.yml (mits plugin überhaupt startet)
RegisterEvents (Leider sind viele Tutorials veraltet wo man dann die events mit PlayerListener oder
BlockListener regestriert hat da am Besten im Bukkit forum nach fragen wenn du
nichts findest)
Bei dem was du machen möchtest
Brauchst du z.B das PlayerJoinEvent
eine möglichkeit wäre dann in diesem event mit
Java:
System.currentTimeMillis();
die Zeit zu kriegen und dann den Spieler und seine Zeit in einer HashMap zu speichern.
Dan wäre es möglich jedesmal wenn ein Spieler dem Server joint zu prüfen ob er schon in der HashMap ist oder nicht wenn ja dann über prüf die jetzige Zeit (
Java:
System.currentTimeMillis();
)
mit der gespeicherten in der HashMap (solltest du natürlich in tage umrechnen)
Aber da ich denke der Server wird auch mal abstürzen solltest du alle Informationen die die HashMap hat irgendwie sichern so das sie beim Server start ausgelesen werden können und es keine verluste gibt.
Nun wolltest du auch noch nen zufälligen code generieren das würde ich so machen ( ich bin selbst recht neu mit java deswegen ist es vielleicht nicht die beste idee)
Als erstes erstellst du einen StringArray in dem alle Buchstaben drinne sind mit denen du einen code generieren möchtest (am besten kein ä,ö,ü)
dann kannst du mittels einer
while schleife je nach deinem wunsch einen längern / kürzeren code
Dieses Passwort müsstest du dann nur wieder in einer HashMap oder ArrayList in verbindung des Spielers speichern und dann könntest du bei jedem PlayerJoinEvent über prüfen ob dieser Spieler bereits ein passwort hat oder nicht , wenn nicht generierst du ein neues
(ich fänds sinnvoller die diamanten einfach ins Inventory zu packen)
Nun, du musst aber ein festen command haben
zb /gc <code>
(gc = geschenk code) kannst aber nehmen was du möchtest
nun kannst du in dem command die HashMap überprüfen
Ob der Spieler mit dem angegebenem Code übereinstimmt wenn ja kannst du ihm die diamanten hinzufügen wenn nein dann dem spieler das irgendwie mitteilen.
Natürlich muss der Spieler dann irgendwie gekenzeichnet werden mit dein Plugin weiß er hat den Geschenk Code schon eingelöst
Die tipps die ich dir gegeben haben führen vielleicht nicht zu besten Lösung aber sie wird Funktionieren wenn du es richtig codest
EDIT: Und sonst frag HIER mal nach , das offizielle Bukkit fourm für dev fragen ist glaube ich nachher besser geeignet