Skocz do zawartości

[Inne] Tasket - Proste i szybkie zarządzanie taskami dla Bukkit, Sponge i BungeeCord

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

Polecane posty

Autor tematu Napisano (edytowany)

Proste API do zarządzania taskami dla Bukkit, Sponge i BungeeCord 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.

Edytowano przez mrkacperek

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
Udostępnij na innych stronach
Pani Kasia

No super! :D


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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Została wydana aktualizacja 1.1.0 ze wsparciem pod BungeeCord'a. Dodałem także również wiki, która objaśnia jak używać libki step-to-step. Wszystkie linki znajdują się w repo.


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
Udostępnij na innych stronach
Pani Kasia

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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

  • Kto przegląda   0 użytkowników

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


×
Okienko zamknie się za 5 sekund...