Skocz do zawartości

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


Rekomendowane odpowiedzi

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.

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.

Edytowane przez Nieaktywny
Odnośnik do komentarza
https://skript.pl/temat/20961-tasket-proste-i-szybkie-zarz%C4%85dzanie-taskami-dla-bukkit-sponge-i-bungeecord/
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...