Von 1.7.10 auf 1.8 Programmieren

09/07/2014 06:53 LordJused#1
Hey, ne kleine Frage zum programmieren, ist es schwer eigene Plugins die man schreibt von 1.7.10 auf 1.8 zu updaten? Oder kommt es darauf an was mn für ein plugin macht? und was oder wie genau muss man da updaten?
09/07/2014 07:07 Floppy012#2
Es kommt immer drauf an was sich am API ändert.

Nehmen wir mal iConomy. Das wird seit vielen versionen nicht mehr geupdated aber es funktioniert immer noch. Das hat damit zutun, dass sich nichts an den API Methoden die iConomy nutzt verändert hat, außer, dass sie vielleicht als veraltet gekennzeichnet wurden.

Fazit: Ändert sich viel, ist die chance hoch, dass du was verändern musst, verändert sich wenig, dann ist die chance geringer.

Als jetzt zum Beispiel die UUIDs in den Vordergrund getreren sind, musste jedes Plugin, an dem noch aktiv gearbeitet wird (also nicht inaktiv ist oder so), ein Update dürchführen, bei dem die Art und Weise geändert wird wie die Spielerdaten abgespeichert werden. Natürlich müssen das nur Plugins die auch Spielerdaten abspeichern. Nähmlich nicht mehr die Namen sondern die UUIDs.

Das ist auch der Grund, warum man iConomy in 1.8 (wenn Mojang das mit dem Namen ändern auf die Reihe kriegt) nicht mehr nutzen sollte.

Mit freundlichen Grüßen

Floppy012
09/07/2014 07:20 LordJused#3
Und wie mache ich das mit den UUID's ? In den tuts die ich mir so anschaue handelt es sich ja um plugins mit den versionen 1.5^^ Wo bekommt man aktuelle tuts her für sowas?
09/07/2014 09:00 lordsill#4
1. Kannst du dir das hier gerne anschauen: [Only registered and activated users can see links. Click Here To Register...]
Dort findest du alle methoden etc. die dir die bukkit api zur verfügung stellt (immer für die aktuellste dev-build version)
2. UUIDs brauchst du nur, wenn du den Spieler iwie z.b. in einer Datei, Datenbank oder sonstwo speichern willst. Wenn du ihn nicht speichern musst, brauchst du UUIDs nicht.
Ansonsten kann man recht einfach an die UUID:
player.getUniqueId().toString(); (macht dir direkt aus der UUID einen String)
anstelle dann von
player.getName();
(musst du aber nur da austauschen, wo der Spieler gespeichert werden soll. Ansonsten kannst du weiterhin player.getName() verwenden)
09/07/2014 09:05 D13L3G3ND3#5
Lohnt es sich überhaupt noch für Bukkit zu programmieren?
Ich meine die haben doch das Projekt beendet.
09/07/2014 09:06 lordsill#6
Quote:
Originally Posted by D13L3G3ND3 View Post
Lohnt es sich überhaupt noch für Bukkit zu programmieren?
Ich meine die haben doch das Projekt beendet.
Ja, und sobald das DMCA Problem gelöst wurde, oder man sich vllt iwie geeinigt hat, kann man Bukkit auch wieder herunterladen
09/07/2014 09:20 LordJused#7
und ähm wenn ich mein eigenes geld system entwerfen will, brauch ich ja diese UUID's
09/07/2014 09:25 lordsill#8
genau. und beim speichern und laden wechselt du dann nur das
player.getName(); (<-- damit hattest/hast du den aktuellen Spielernamen)
gegen
player.getUniqueId().toString(); (<-- Damit hast die UUID als String)
aus. Mehr ist es an sich nicht.
09/07/2014 09:26 LordJused#9
ja wenn ich mal anfangen könnte <.< (kann ja noch nichts downloaden um loszulegen)
09/07/2014 10:09 lordsill#10
Quote:
Originally Posted by LordJused View Post
ja wenn ich mal anfangen könnte <.< (kann ja noch nichts downloaden um loszulegen)
in der repo von bukkit gibts es die bukkit.jar noch:
[Only registered and activated users can see links. Click Here To Register...]
09/07/2014 10:39 LordJused#11
gilt das auch bei cmd.getName ? Oder ist das hier egal

Ich verwende grade dein Bukkit.
09/07/2014 10:41 lordsill#12
Quote:
Originally Posted by LordJused View Post
gilt das auch bei cmd.getName ? Oder ist das hier egal

Ich verwende grade dein Bukkit.
Befehle können keine UUIDs haben. Daher bleibt es bei getName.
Nur bei spielern, musst du dann auf UUID zugreifen, wenn du ihn speichern oder laden willst.

Das ist nicht mein bukkit, dass ist das ganz normale offiziele bukkit, wie man es auch von dl.bukkit.org herunterladen kann (nur auf nem anderen server)
09/07/2014 10:59 LordJused#13

kannst du mir sagen wo da der fehler liegt? Habe die fehler rot markiert

ich bekomms grad i-wie nicht hin das die klammern und die zeilen einen richtigen abstand haben O.o d.h alles ist jetzt so nach links gequetscht
09/07/2014 11:07 lordsill#14
Quote:
Originally Posted by LordJused View Post
kannst du mir sagen wo da der fehler liegt? Habe die fehler rot markiert
Player musst du noch importieren
es heißt equalsIgnoreCase nicht equalsIngnoreCase (also ein n zuviel)
Und am ende fehlt iwie noch ein }
du musst immer drauf achten, dass es genauso viele { wie } gibt. Wenn dass nicht der fall ist, wirst du iwo eine } vergessen haben (in dem fall am ende)
[Only registered and activated users can see links. Click Here To Register...]
09/07/2014 11:25 ComputerBaer#15
Vielleicht solltest du versuchen meinen Vorschlag zu beachten, dann passieren dir solche Fehler wahrscheinlich nicht mehr. Außerdem habe ich da sogar schon deine anfängliche Frage beantwortet gehabt.

Quote:
Originally Posted by ComputerBaer View Post
Dann würde ich vorschlagen, dass du als erstes Java lernst. Hier findest du dazu ein gutes Buch: [Only registered and activated users can see links. Click Here To Register...]

Wenn du mit den Grundlagen fertig bist (mindestens Kapitel 6), kannst du mit Bukkit anfangen. Wenn es dann noch keine Bukkit für 1.8 gibt, fang einfach mit 1.7.10 an und mach dann sobald es möglich ist das Update auf 1.8. Wenn Anpassungen erforderlich sind, werden die nur sehr klein sein und deshalb kein Neuschreiben des Plugins bedeuten.