ServerPlugin Problem mit Parameter

Dieses Thema im Forum "Programmierung" wurde erstellt von The-Chriss, 1. Januar 2014.

  1. The-Chriss
    Offline

    The-Chriss

    Registriert seit:
    20. April 2012
    Beiträge:
    7
    Hey,
    ich habe ein problem, ich schreibe ein Clan Plugin und ich will ein befehl /clan erstellen [Tag] [Clan-Name]
    aber weiß nicht sorecht wie es mit dem Parametern funktioniert. Wäre nett wenn ihr mir eine kleine Hilfe gibt. ;)

    MfG,
    The-Chriss
     
    #1
  2. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    In der onCommand methode:
    Code (Text):
    1. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { /*code*/ }
    Bekommst du ein String Array übergeben, in diesem fall "args" genannt, in dem Array stehen alle übergebenen Argumente.
     
    #2
  3. Taces
    Offline

    Taces

    Registriert seit:
    17. Oktober 2013
    Beiträge:
    16
    Nichts gegen dich, aber ich würde dir empfehlen erstmal einfache Plugins zu versuchen und die Grundlagen in der Bukkit-Programmierung zu lernen, wenn du nicht einmal weißt, wie man an die Parameter bei einem Command rankommt ;)
     
    #3
  4. The-Chriss
    Offline

    The-Chriss

    Registriert seit:
    20. April 2012
    Beiträge:
    7
    Ich weiß,
    Aber wie muss ich es machen wenn ich z.b /clan erstellen wie muss ich ihr args angeben?


     
    #4
  5. Taces
    Offline

    Taces

    Registriert seit:
    17. Oktober 2013
    Beiträge:
    16
    Ich nehme zurück was ich gesagt habe und gebe dir einen anderen ratschlag: Lern erstmal die Grundlagen der Java-Programmierung. Strings werden mit .equals und nicht mit == verglichen ;)

    Code (Text):
    1. if(args.length==1&&args[0].equals("erstellen")){
    2.   //Code hier
    3. }
     
    #5
  6. The-Chriss
    Offline

    The-Chriss

    Registriert seit:
    20. April 2012
    Beiträge:
    7
    Könnte mir vielleicht jemand ein Tutorial schicken für soetwas? Wäre nett.
     
    #6
  7. ScaryHutman
    Offline

    ScaryHutman

    Registriert seit:
    1. Januar 2013
    Beiträge:
    205
    Ort:
    NRW
    Minecraft:
    Scary_Hutman
  8. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Probiere das mal:

    http://pastebin.com/sSfZqcbX

    Wie schon gesagt, solltest du aber erst einmal die Javagrundlagen lernen, bevor du anfängst ein Plugin zu schreiben oder du solltest ein einfacheres Plugin schreiben, wie zum Beispiel ein Plugin, mit bei dem du mit einem Befehl dein Inventar leerst oÄ.
     
    #8
  9. The-Chriss
    Offline

    The-Chriss

    Registriert seit:
    20. April 2012
    Beiträge:
    7
    Danke

    Mit Freundlichen Grüßen.
    the-Chriss
     
    #9
  10. NeoVir
    Offline

    NeoVir

    Registriert seit:
    24. Juli 2013
    Beiträge:
    6
    Dies würde dir eine NPE geben, weil in der IF Abfrage noch nicht klargestellt wurde, dass die Anzahl der Argumente > 0 ist, jedoch fragst du schon nach dem Argument. Würde jemand '/clan' machen gibt es eine NPE :)
     
    #10
  11. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Das stimmt nicht, er benutzt hier AND, der rechte teil der if abfrage wird nur ausgeführt wenn der linke zutrifft.
    Und nachdem der linke prüft ob die länge der argumente 1 ist kann er problemlos auf das Array zugreifen.

    Kannst du übrigens auch selber austesten, z.b mit so einem konstrukt:
    Code (Text):
    1. public class Test {
    2.  
    3.     public static void main(String args[]) {
    4.  
    5.  
    6.         final boolean immerFalsch = false;
    7.         if(immerFalsch && teste()) {
    8.             System.out.println("bla");
    9.         } else {
    10.             System.out.println("Es wurde nur der linke teil evaluiert.");
    11.         }
    12.  
    13.  
    14.     }
    15.  
    16.  
    17.     public static boolean teste() {
    18.         System.out.println("wurde aufgerufen");
    19.         return true;
    20.     }
    21.  
    22.  
    23. }
    Ausgabe auf der Konsole:
    Code (Text):
    1. [benni@benni-archlinux Desktop]$ javac Test.java [benni@benni-archlinux Desktop]$ java Test
    2. Es wurde nur der linke teil evaluiert.
    3.  
    Du siehst also das der rechte teil (in diesem fall eine methode) nie aufgerufen wird.
     
    #11