definitelystatic
Minecrafter
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.
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.
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.
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.
java:
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.
java:
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.
java:
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);
}
}