• Guten Tag,


    Ich möchte ein Fly item programmieren, das man jede 5 sekunden benutzen kann.


    Jetzt habe ich hier was geschrieben ==



    Aber das Item geht aber der cooldown setzt nicht an ???
    An was liegt das ?


    Mit freundlichen Grüßen,


    Hamperl :?::!:

  • Ich verstehe irgendwie deinen Code nicht... Ich mache das so, dass ich immer einen Scheduler (Asynchron) jede Sekunde laufen lasse. Dort werden alle Spieler bzw. UUIDs aus der HashMap (UUID, int) genommen und deren int, der Cooldown um 1 runtergesetzt. Ist das ganze dann 0, wird er entfernt. Nun nur noch beim Event eine Abfrage, ob er in der HashMap ist, machen, und nachdem das ganze ausgeführt ist, ihn hinzufügen. Bitte erstelle nicht für jeden Spieler einen neuen Scheduler.

  • Ich verstehe irgendwie deinen Code nicht... Ich mache das so, dass ich immer einen Scheduler (Asynchron) jede Sekunde laufen lasse. Dort werden alle Spieler bzw. UUIDs aus der HashMap (UUID, int) genommen und deren int, der Cooldown um 1 runtergesetzt. Ist das ganze dann 0, wird er entfernt. Nun nur noch beim Event eine Abfrage, ob er in der HashMap ist, machen, und nachdem das ganze ausgeführt ist, ihn hinzufügen. Bitte erstelle nicht für jeden Spieler einen neuen Scheduler.

    Warum überhaupt ein Scheduler? Ich denke, dass es wesentlich performanter und übersichtlicher ist, wenn man eine Hashmap<String, long> hat in der man als Key den Namen des Spielers speichert (Macht hier Sinn) und als Value einen long, bzw. genauer den Timestamp (System.currentTimeMillis) einträgt, wann der Nutzer das Item zuletzt benutzt hat. Beim interagieren mit jeweiligem Item kann man das dann überprüfen und dementsprechend abfragen, ob die in der Hashmap stehende Zeit + x Sekunden größer als die aktuelle Zeit ist. Falls ja, darf der Nutzer damit nicht interagieren.
    Ggf. kann man noch einbauen, dass die gesamte Liste alle 60 Minuten mal geleert wird, allerdings denke ich, dass dies sinnvoller ist, als die Hashmap jede Sekunden durchzugehen und alles zu überprüfen.

    devtekavatar.png
    -----------------------------------------------------
    Wo ein Komma (,) tödlich ist:
    Wir essen jetzt, Opa.
    Wir essen jetzt Opa.