Welcome to the BukkitWiki!

This Wiki is home to Bukkit's documentation and regulations surrounding the Bukkit Project and it's services. Want to help out? We would love to have you! Signup to get started!

Scheduler Programming/pl

From BukkitWiki
Jump to: navigation, search
TODOIcon.png Tłumaczenie wymagane!
Ta strona jest nie dokończona i może z tego względu zawierać niepełne informacje. W międzyczasie możesz zajrzeć na IRC lub do JavaDocs. Najprawdopodobniej w angielskiej wersji artykułu znajdziesz wszystkie potrzebne informacje.
TODOIcon.png


Tutorial schedulera

Ten poradnik pokaże Ci, jak w łatwy sposób można wykorzystywać możliwości Bukkitowego schedulera. Pozwala on na opóźnienie danego zadania na czas późniejszy. Nie należy tego mylić z rejestrowaniem Listenera, czyli bloku kodu wykonywanego podczas wystąpienia jakiegoś zdarzenia. Kod może też być wykonywany cyklicznie, z przerwami lub bez; będzie on wykonywany aż do momentu zakończenia zadania, jego anulowania lub wyłączenia pluginu.

BukkitRunnable

BukkitRunnable jest abstrakcyjną implementacją typu Runnable. Wspiera ona dodatkowe operacje, które dla zwykłej Runnable nie są możliwe. Jest to między innymi możliwość opóźnienia lub nawet anulowanie wykonywania samej siebie.

Definiowanie pracy

Plugin powinien najpierw rozwijać BukkitRunnable, aby móc definiować pracę wymagającą wykonania.

Przykład

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

public class ExampleTask extends BukkitRunnable {

    private final JavaPlugin plugin;

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

    public void run() {
        // Tu znajduje się to, co chcesz opóźnić
        plugin.getServer().broadcastMessage("Witaj na Bukkicie! Pamiętaj o zajrzeniu do dokumentacji :P");
    }

}

Opóźnianie pracy

Po zdefiniowaniu zadania, plugin musi je opóźnić. BukkitRunnable mogą zostać wykonane poprzez wywołanie na niej konkretnej metody. Ich lista znajduje się w JavaDocs dla BukkitRunnable. Wszystkie metody zwracają obiekt typu BukkitTask.

Warning Warning: Zadania asynchroniczne nigdy nie powinny wykorzystywać Bukkit API.

Przykład

Poniżej jest przykładowy plugin, który po dołączeniu gracza opóźnia zadanie na 20 ticków później.

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.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;

public final class ExamplePlugin extends JavaPlugin {

    @Override
    public void onEnable() {
        new ExampleListener(this);
    }
}

class ExampleListener implements Listener {

    private final ExamplePlugin plugin;

    public ExampleListener(ExamplePlugin plugin) {
        this.plugin = plugin;
        plugin.getServer().getPluginManager().registerEvents(this, plugin);
    }

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

}

BukkitScheduler

Language   EnglishбеларускаяDeutschespañolsuomifrançaisitaliano한국어Nederlandsnorskpolskiportuguêsрусскийlietuviųčeština