Интервалы времени!

  • Автор темы Автор темы AlexMor
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
в твоем случае, "Bukkit.getScheduler().scheduleSyncRepeatingTask(Plugin instance, Runnable run, long delay, long period)" можно писать в любом классе? И задачи после этого метода будут исполняться или как? И что означают instance, run, delay, periad ?
instance - экземпляр текущего плагина,
run - выполняемый код
delay - время, через которое Runnable выполнится первый раз (в тиках)
period - время, через которое Runnable будет выполняться в последующие разы (опять же в тиках)
 
в твоем случае, "Bukkit.getScheduler().scheduleSyncRepeatingTask(Plugin instance, Runnable run, long delay, long period)" можно писать в любом классе? И задачи после этого метода будут исполняться или как? И что означают instance, run, delay, periad ?
Вот, почитай.
 
Для тех, кто считает. Что тики, зависят от ТПС. Написал простенькую команду. Результат на скрине.
TPS.jpg
Java:
@Override
    public boolean execute(CommandSender sender, String[] args) {
        Player p = (Player) sender;
        long startTime = System.currentTimeMillis();

        Bukkit.getScheduler().runTaskLater(LobbyPlugin.getInstance(), () -> {
            long time = (System.currentTimeMillis() - startTime);
            double seconds = time/1000;
            p.performCommand("tps");
            Bukkit.broadcastMessage("Шедуллер выполнился за: " + seconds + " секунд.");
            Bukkit.broadcastMessage("Шедуллер выполнился за: " + time + " милисекунд.");
        }, 20);
        return false;
    }
Можно, такое конечно же выпилить в асинхронном виде.
Bukkit.getScheduler().runTaskLaterAsynchronously();
Для этого руннейбла, создаст свой BukkitWorker и отдельный поток.
Но будут небольшие проблемы с многопоточностью. К примеру, если в цикле будет итерация по непотокобезопасной коллекции, и в этот момент например в другом потоке удалят элемент из коллекции, будет ConcurrentModificationException. Парень если такое спрашивает, новичок. Ему не нужны сложные, и суперточные до милисекунд решения.
 
Спасибо, помогли, все работает)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх