Timer einbauen

Dieses Thema im Forum "Programmierung" wurde erstellt von Mrcookie008, 19. März 2013.

  1. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Eclipse Timer Code

    Heyho Leute :3
    Ich wollte mal fragen wie man einen Timer in Eclipse einbaut, der wenn man einen Befehl eingegeben hat abläuft und erst dann den Befehl wieder eingeben kann (Sowie bei Essentials /kit)

    Ich möchte das dann soähnlich wie bei Essentials machen, bloss eben dass man die Zeit nicht in der Config einstellen kann ^^

    Wer mir helfen kann bzw. den Code hat bitte antworten :)

    LG.
     
    #1
  2. games6471
    Offline

    games6471

    Wieso unbedingt in Eclipse?

    Programmieren kannst du in mehren IDE's - es ist immer die gleiche Syntax, da es immer Java ist.
     
    #2
  3. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Sorry^^ Könnte ich trotzdem ne erklärung od. den Code bekommen ._.
     
    #3
  4. games6471
    Offline

    games6471

    #4
  5. ChunkNorris
    Offline

    ChunkNorris

  6. games6471
    Offline

    games6471

    war schneller ;)

    //Wieso hast du kein Avatar mehr?
     
    #6
  7. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Ich blick das irgentwie nicht.. ich weiss auch nicht warum :/ Stell ich mich nur blöd an oder warum klappt dass nicht wie ich dass will :/
     
    #7
  8. games6471
    Offline

    games6471

    Zeig doch mal deine Code. Vllt können wir den Fehler beheben.
     
    #8
  9. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Code (Text):
    1.     if (cmd.getName().equalsIgnoreCase("BefehlXY")) {
    2.         if ((p.hasPermission("PluginXY.permission")) &&
    3.             (args.length == 0)) {
    4.               p.getInventory().setHelmet(new ItemStack(310));
    5.               p.getInventory().setChestplate(new ItemStack(311));
    6.               p.getInventory().setLeggings(new ItemStack(312));
    7.               p.getInventory().setBoots(new ItemStack(313));
    8.               p.getInventory().addItem(new ItemStack (276, 1));
    9.         }
    10.        
    11.     }
    Dieser Befehl soll ja jetzt in Ticks ausgeführt werden, bloss wo füge ich dass jetzt ein dass man den befehl bzw. die Items nur alle 24 stunden bekommt (via. Ticks?) :/
     
    #9
  10. Crafter213
    Offline

    Crafter213

    Registriert seit:
    9. August 2012
    Beiträge:
    353
    Speicher doch die Systemzeit in Verbindung mit dem Spielernamen.
    Am Anfang vom Command fragst du dann, ob
    a. kein Eintrag existiert -> Command ausführen und Eintrag erstellen
    b. sich die Systemzeit des alten Eintrages um mehr ls 24 Stunden unterscheidet -> Command ausführen und den Eintrag aktualisieren

    Wenn sich die eingespeicherte Systemzeit nicht um mehr als 24 Stunden von der aktuellen Systemzeit unterscheidet,
    bekommt der Spieler eine Meldung, dass er noch warten muss.

    Ich hoffe mal, das klappt und ist nicht allzu ineffizient...
     
    #10
  11. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Hallo,
    ich würde gerne in meinen Code einen Timer einbauen (Ich glaube das nennt sich Scheduler^^), damit man diesen Command in z.B erst 15.000 ticks wieder ausführen kann, weiss jemand wie das funktioniert?

    Beispiel Befehl:

    Code (Text):
    1.         if (cmd.getName().equalsIgnoreCase("test")) {
    2.               Player p = (Player)sender;
    3.              {
    4.             }
    5.               if (args.length == 0) {
    6.                 p.sendMessage("Das ist ein Text");
    7.               }
    8.             }
    LG.
     
    #11
  12. games6471
    Offline

    games6471

  13. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Ist ja schön und gut nen Countdown einzubauen.. aber ich möchte dass man den Command erst nach z.B 20 Ticks wieder verwenden kann.. ich glaube ich hab da nen Knoten im Hirn :/
     
    #13
  14. rBxGame
    Offline

    rBxGame Ehem. Teammitglied

    Registriert seit:
    16. Februar 2012
    Beiträge:
    1.077
    Also willst du im Grunde eine Verzögerung für einen
    Befehl.
    Ich nutze /blub, und dann müssen X Sekunden vergehen,
    bevor ich wieder /blub nutzen darf?

    MFG
    rBx
     
    #14
  15. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    Du hast es erfasst, soll für Kit's sein :)
     
    #15
  16. games6471
    Offline

    games6471

  17. Mrcookie008
    Offline

    Mrcookie008

    Registriert seit:
    15. Dezember 2011
    Beiträge:
    380
    Ort:
    /home
    Minecraft:
    xCookieZz oder Mrcookie008 (Beides Premium)
    #17
  18. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Du musst nur logisch denken um das problem zu lösen...
    Erstelle eine arrayList.
    Wenn der befehl ausgeführt wird überprüfe ob der Spielername in der arraylist steht.
    Wenn ja dann sag ihm das er noch warten muss, wenn nicht führe den Befehl aus und schreibe ihn auf die Liste und
    starte einen delayed task (geht mit dem scheduler) der den namen nach ablauf der zeit von der Liste entfernt.
     
    #18
  19. TimBone
    Offline

    TimBone

    #19
  20. MolaynoxX
    Offline

    MolaynoxX

    Registriert seit:
    22. März 2012
    Beiträge:
    8
    Wozu dafür überhaupt einen Scheduler benutzen?
    Wie wärs denn einfach sobald ein Spieler das Command ausführt System.currentTimeMillis() abzuspeichern und bei erneutem Aufruf dann per Differenz zwischen System.currentTimeMillis() und dem vorher abgespeicherten Wert zu prüfen ob X Sekunden vergangen sind?
    So würd ich das jedenfalls machen ^^.

    Edit: Uuups da hätt ich wohl vorher mal den Link vom vorherigen Post lesen sollen, naja was solls. :D
     
    #20