Skocz do zawartości

Tasket - Proste i szybkie zarządzanie taskami dla Bukkit i Sponge

Od ostatniej odpowiedzi w tym temacie minęło 756 dni. Pamiętaj, że odkopywanie takich tematów jest niewskazane, chyba że chcesz wnieść coś nowego do dyskusji.

Polecane posty

Proste API do zarządzania taskami dla Bukkit i Sponge za pośrednictwem adnotacji. Przykład:
 

import org.apache.commons.lang3.Validate;
import org.bukkit.plugin.java.JavaPlugin;
import pl.kacperduras.tasket.TaskContainer;
import pl.kacperduras.tasket.Tasket;
import pl.kacperduras.tasket.annotation.Task;
import pl.kacperduras.tasket.annotation.Timer;
import pl.kacperduras.tasket.bukkit.BukkitTasket;

public final class TasketExampleBukkit extends JavaPlugin {

    private Tasket tasket;

    @Override
    public void onLoad() {
        tasket = new BukkitTasket(this);
        tasket.loadTasks(new Tasks(this));

        tasket.getTask("taskTimerLaterAsync").ifPresent(taskContainer -> taskContainer.start(tasket));
    }

    private class Tasks {

        private final TasketExampleBukkit plugin;

        public Tasks(TasketExampleBukkit plugin) {
            Validate.notNull(plugin);

            this.plugin = plugin;
        }

        @Task(id = "taskTimerAsync", timer = @Timer(period = 20), async = true) // wszystkie timerTask'i, ktore nie sa later'ami, uruchamiaja sie domyslnie zaraz po zalaczeniu przez Tasketa
        public void taskTimerAsync() {
            plugin.getServer().broadcastMessage("Task asynchroniczy co 20 tickow!");
        }

        @Task(id = "taskTimerLaterAsync", timer = @Timer(period = 100, later = true), async = true) // tego trzeba uruchomic manualnie
        public void taskTimerLaterAsync(Tasket tasket) {
            tasket.getTask("taskTimerAsync").ifPresent(TaskContainer::stop);

            tasket.getTask("taskAsync").ifPresent(taskContainer -> taskContainer.start("test"));
        }

        @Task(id = "taskAsync", async = true) // tego tez
        public void taskAsync(String string) {
            plugin.getServer().broadcastMessage(string);
        }

        @Task(id = "taskSync") // i tego
        public void taskSync() {
            plugin.getServer().broadcastMessage("sync");
        }

    }


}

Maven i kod znajdują się w repozytorium GitHub'a (gwiazdka mile widziana!).
Miłego używania.


Jeżeli jesteś zainteresowany pomocą, napisz to w odpowiednim dziale - daj możliwość wykazania się innym. Pomagam na PW tylko i wyłącznie odpłatnie.

Udostępnij ten post


Link to postu
Pani Kasia

Zamykam.

 


Uważam, że poziom mojej inteligencji nie przekracza poziomu inteligencji przeciętnego człowieka.

Udostępnij ten post


Link to postu
Od ostatniej odpowiedzi w tym temacie minęło 756 dni. Pamiętaj, że odkopywanie takich tematów jest niewskazane, chyba że chcesz wnieść coś nowego do dyskusji.
Temat jest zablokowany i nie można w nim pisać.
  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.


×
Okienko zamknie się za 5 sekund...