Minecraft Timer bzw. Stoppuhr programmieren?

1 Antwort

Ich würde Dir den Bukkit Scheduler empfehlen (https://bukkit.gamepedia.com/Scheduler_Programming/de) dieser führt einen gewissen Code nach einer spezifischen Zeit aus und wiederholt sich nach der angegebenen Zeit. Du müsstest die aktuelle Zeit einfach jedes Mal speichern und beim pausieren der Stoppuhr den Scheduler abbrechen und beim „weiterführen“ wieder neu starten mit der gespeicherten Zeit.


byWolfii 
Fragesteller
 31.05.2020, 11:12

Damit habe ich mich gestern bereits befasst, vielen Dank, ich werde es mal ausprobieren ^^

0
byWolfii 
Fragesteller
 31.05.2020, 12:28

Ich hätte da eine Frage, wie kann ich die "Actionbar" dauerhaft senden? d.h das sie jede Sekunde gesendet wird und sich somit die Zeit auch updated?

0
chriss1967  31.05.2020, 12:39
@byWolfii

Eigentlich müsstest du nur in dem Task (Bukkit Sheduler), der jede Sekunde ausgeführt wird, die actionable updaten.

so in etwa!

final Int timer = 20; // Stoppuhr in Sekunden

Bukkit.getScheduler().runTaskTimer(plugin, new Runnable() {
  @Override
  public void run() {
    //Das hier wird jede Sekunde ausgeführt

    String message = String.valueOf(timer);//Den müsstest du natürlich noch    
                                           //in ein entsprechendes Format      
                                           //bringen, z.b. 00:20
    
    player.spigot().sendMessage(ChatMessageType.ACTION_BAR,     
      TextComponent.fromLegacyText(message));

    timer = timer - 1; // eine Sekunde vom Timer abziehen

  }
}, 0l, 20l) // Der Task wird sofort gestartet und nach 20 Minecraft-Ticks (eine Echtzeit-Sekunde) wiederholt
0