Von 1.7.10 auf 1.8 Programmieren

09/07/2014 19:10 Floppy012#16
Mit was Programmierst du? Hast du ein spezielles Programm dafür wie z.B. Eclipse, IntelliJ, o.ä. oder nimmst du einen herkömmlichen Editor?

Mit freundlichen Grüßen

Floppy012
09/07/2014 19:35 LordJused#17
ich benutze eclipse.das mit den klammern kommt nur komisch rüber weil ich das i-ie nicht hier her geposted bekomme
09/07/2014 19:51 Floppy012#18
Normalerweise müsste dir Eclipse, dann das Player Objekt dann rot unterstreichen.

Kleiner Tipp: Mit Strg + Uschalt. + O fügst du alle fehlenden Imports hinzu.

Ich empfehle dir auch (wie ComputerBaer) dir erstmal die Grundlagen anzueignen. Das kann sonst sehr Chaotisch werden. Und wenn du Später mal mit andern Devs zusammen arbeitest, dann hilft dir das hier vielleicht:

Deutsch: [Only registered and activated users can see links. Click Here To Register...]
Englisch (Original): [Only registered and activated users can see links. Click Here To Register...]

Das sind die Codeconventions die von Sun veröffentlicht wurden. Sie sollen dafür sorgen, dass der Code verständlicher wird (Sprich: Durcheinander verhindern, sodass auch andere Devs deinen Code verstehen)

Mit freundlichen Grüßen

Floppy012
09/07/2014 19:57 LordJused#19
ja hat eclipse auch, und deswegen habe ich das dann nochmal extra gemacht daimt lordsill das genauer sieht um mir zu helfen
09/07/2014 20:10 Floppy012#20
Ich empfehle dir auch noch bevor du den CommandSender zum Player castest:

Code:
Player p = (Player)sender;
zu prüfen ob der CommandSender überhaupt eine Instanz von Player ist. Wenn du das nicht machst, dann kann es passieren, dass wenn du diesen Befehl von der Konsole ausführst, du Fehlermeldungen bekommst.

Hier ein Beispiel, wie du das machen kannst:

Code:
if(!(sender instanceof Player)){
    sender.sendMessage("Du musst ein Spieler sein, um diesen Befehl ausführen zu können");
    return;
}
Kleine Erklärung:

- ! - Dreht die Bedingung der If-Clause um. Statt, dass das nachfolgende, true sein muss, damit der code ausgeführt werden muss, muss es nun false sein.

- (sender instanceof Player) - Prüft ob sender (CommandSender) eine Instaz von Player ist. Die Klammern müssen da sein, damit wir nicht prüfen ob sender false ist, sondern damit das Ergebnis von sender instanceof Player gewertet wird.

- sender.SendMessage(String) - Sollte sich von selber erklären.

- return - Unterbricht die weitere Ausführung der Funktion.

Mit freundlichen Grüßen

Floppy012