• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!
  • Dies ist ein moderiertes Forum. Dein Beitrag ist für dich und andere erst sichtbar, wenn er von einem Teammitglied moderiert wurde! Wird dein Beitrag abgelehnt erhältst du eine Meldung. Bitte erstelle so lange keine neuen Beiträge! Die Freischaltung wird auch nicht durch Nachfragen bei einem Teammitglied beschleunigt.

Technik Wie man eine BukkitRunnable verwendet.

definitelystatic

Minecrafter
Registriert
25 Dezember 2021
Beiträge
6
Diamanten
106
Hallo,
Heute möchte ich dir erklären wie man eine BukkitRunnable verwendet.

Was ist eine BukkitRunnable überhaupt?
Mit einer BukkitRunnable hast du die Möglichkeit eine Task entweder zu einem späteren Zeitpunkt, oder wiederholt auszuführen.
Auch ist es möglich eine Task asynchron auszuführen, diese sollte allerdings niemals direkt auf die Bukkit-API zugreifen.
Das Delay einer Task ist in Ticks angegeben. 20 Ticks entsprechen jeweils 1 Sekunde.

Task erstellen:
So sieht in unserem Beispiel die Klasse unserer Task aus.
Code:
import org.bukkit.Bukkit;
import org.bukkit.scheduler.BukkitRunnable;

public class ExampleTask extends BukkitRunnable {

    @Override
    public void run() {
        Bukkit.broadcastMessage("Die Bukkit-API ist wirklich toll.");
    }
}

Task nach einer Verzögerung ausführen:
Um unsere Task verzögert auszuführen, verwenden wir die Methode runTaskLater(Plugin plugin, long delay).
In diesem Beispiel führen wir unsere Task verzögert nach 20 Ticks aus.
Code:
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;

public class ExampleClass implements Listener {

    private final JavaPlugin plugin;

    public ExampleClass(JavaPlugin plugin) {
        this.plugin = plugin;
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        BukkitTask task = new ExampleTask().runTaskLater(plugin, 20);
    }
}

Task wiederholt ausführen:
Um unsere Task wiederholt auszuführen verwenden wir die Methode runTaskTimer(Plugin plugin, long delay, long period).
In diesem Beispiel warten wir 10 Ticks ab, und führen dann alle 20 Ticks unsere Task aus.
Code:
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;

public class ExampleClass implements Listener {

    private final JavaPlugin plugin;

    public ExampleClass(JavaPlugin plugin) {
        this.plugin = plugin;
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        BukkitTask task = new ExampleTask().runTaskTimer(plugin, 10, 20);
    }
}
 
Oben