brauche hilfe bei einen plugin

Dieses Thema im Forum "Programmierung" wurde erstellt von itachai, 3. Mai 2013.

  1. itachai
    Offline

    itachai

    Registriert seit:
    11. September 2012
    Beiträge:
    44
    Ort:
    Hessen
    Minecraft:
    itachai
    Hallo Leute,
    Also ganz leicht hab ein problem beim coden:
    ich will ein zeitschleife bauen:
    if(cmd.getName().equalsIgnoreCase("test")){
    if(p.hasPermission("test")){
    if(args.length == 0){
    for(int i = 0; i < 700; i++){
    if(i = 200){
    Bukkit.broadcastMessage(ChatColor.RED + "[Server]" + ChatColor.BLUE + "Der Server wird in ein paar Sekunden ...");
    }
    if(i = 300){
    Bukkit.broadcastMessage(ChatColor.RED + "[Server]" + ChatColor.BLUE + "Der Server wird in 3 Sekunden ...");
    }
    if(i = 400){
    Bukkit.broadcastMessage(ChatColor.RED + "[Server]" + ChatColor.BLUE + "Der Server wird in 2 Sekunden ...");
    }
    if(i = 500){
    Bukkit.broadcastMessage(ChatColor.RED + "[Server]" + ChatColor.BLUE + "Der Server wird in 1 Sekunden ...");
    }
    if(i = 600){
    und commando
    }
    return true
    }

    } else {
    return false;
    }
    }
    }
    So in etwa hab i ch gedacht, geht aber nicht.
    Wer mir helfen kann, der könnte mir ja helfen. :D

    Mfg itachai
     
    #1
  2. games6471
    Online

    games6471

    Du solltest lieber mit Schedulen arbeiten, denn wie schnell die er bei 200, 300, 400 usw. ankommt ist immer unterschiedlich. Außerdem versucht der Server den Code so schnell wie möglich auszuführen und verschlechtert somit die Performance für diese Zeit.
     
    #2
  3. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    #3
  4. itachai
    Offline

    itachai

    Registriert seit:
    11. September 2012
    Beiträge:
    44
    Ort:
    Hessen
    Minecraft:
    itachai
    danke an euch
     
    #4
  5. Plugin00
    Offline

    Plugin00

    Registriert seit:
    3. Februar 2013
    Beiträge:
    71
    Code (Text):
    1.   for (int i = 10; i >= 0; i--) {
    2.   try {
    3.       Threed.sleep(1000L);
    4.       Bukkit.getServer().brodcastMessage("§d[Server] Reload in '" + i + "' sekunden.");
    5.   } catch (NullPointerException ex){
    6.      Bukkit.getServer().brodcastMessage("§d[Server] Fehler: '" + ex.getMessage + "'");
    7.      e.printStackTrace();
    8.   }
    Habe ich mal kurz gemacht, Aber ob es geht könnte ich grade noch nicht Testen, :(
     
    #5
  6. games6471
    Online

    games6471

    Code (Text):
    1.   for (int i = 10; i >= 0; i--) {
    2.   try {
    3.       Thre[COLOR="#FF0000"]a[/COLOR]d.sleep(1000L);
    4.       Bukkit.getServer().bro[COLOR="#FF0000"]a[/COLOR]dcastMessage("§d[Server] Reload in '" + i + "' [COLOR="#FF0000"]S[/COLOR]ekunden.");
    5.   } catch ([COLOR="#FF0000"]InterruptedException[/COLOR] ex){
    6.      Bukkit.getServer().bro[COLOR="#FF0000"]a[/COLOR]dcastMessage("§d[Server] Fehler: '" + ex.getMessage[COLOR="#FF0000"]()[/COLOR] + "'");
    7.      e[COLOR="#FF0000"]x[/COLOR].printStackTrace();
    8.   }
     
    #6
  7. Plugin00
    Offline

    Plugin00

    Registriert seit:
    3. Februar 2013
    Beiträge:
    71
    Danke,

    NaJa, ich schreibe besser jetzt die Plugin wieder mit Eclipse ^^
    Und nicht mit Notepad++, :D
     
    #7
  8. games6471
    Online

    games6471

    Ja. Sind auch nur kleine Fehler, die beim wiederholten Durchlesen man schon sofort erkennen würde. Ausser dem Catchen der richtigen Exception, aber das macht die Erfahrung.
     
    #8
  9. Plugin00
    Offline

    Plugin00

    Registriert seit:
    3. Februar 2013
    Beiträge:
    71
    Jop, ^^ aber danke. :)
     
    #9
  10. delta242
    Offline

    delta242

    Registriert seit:
    28. Mai 2012
    Beiträge:
    90
    Hält man mit Thread.sleep nicht den ganzen Server an? Eig. sollte man das doch eher nicht machen, oder?
     
    #10
  11. games6471
    Online

    games6471

    Und was ist wenn das Teil nicht im Haupt-Thread ausgeführt ist? Dann macht es keine Schwierigkeiten.
     
    #11
  12. delta242
    Offline

    delta242

    Registriert seit:
    28. Mai 2012
    Beiträge:
    90
    Das is klar, ja
    Aber so wie der Code oben geschrieben wurde, sollte man ihn lieber nicht einfügen. Hab früher den Fehler gemacht und mich gewundert, warum sich nix mehr am Server bewegt hat :D
     
    #12
  13. games6471
    Online

    games6471

    Ich noch nie. Für mich war sowas schon verständlich.

    //Back to Topic

    Stimmt bisher hat keiner dies erwähnt gehabt. Also beim verwenden von Thread.sleep oder ähnlichen Methoden sollte der Teil in einen asynchronen Thread ausgelagert werden. Dafür einfach einen extra Thread erstellen oder mit der BukkitSchedule die Methoden benutzen, die "Asynchronously" beinhalten. In diesem Fall:


    EDIT: Im deutschen Wiki steht dies sogar drinnen, aber nicht im Englischen?!


     
    #13