Помогите приостановить выполнение кода

Статус
Закрыто для дальнейших ответов.

Fenix78563

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Blc_Dragon
Доброго времени суток, форумчане.

как приостановить выполнение кода на какое то кол-во тиков\секунд\миллисекунд

Заранее спасибо
 
После выполнения команды запускай таймер. Перед выполнением команды делаешь проверку на время
 
После выполнения команды запускай таймер. Перед выполнением команды делаешь проверку на время
это то понятно, ты пока что не назвал ни одного метода, а искать их наобум не улыбает
 
Что-то типо этого
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, new Runnable() {
public void run() {
for (int i = 0; i < 5; i++) {

}
}
}, 400L);
 
Java:
public class Scheduler extends Thread {
    int time;
    Main instance;

    public Scheduler(int time, Main instance) {
        this.time = time;
        this.instance = instance;
    }

    @Override
    public void run() {
        try {
            Thread.sleep(time);
        } catch (InterruptedException e) {}
        //Что то делаем.
    }
}
Юзаем new Scheduler(5000, this).start();
 
Последнее редактирование:
Зависит от задачи. Если нужно выполнить какой-то сторонний код после определённой задержки, то подойдёт баккитовский шедулер (как предложил HunterGaming). А если же именно приостановить выполнение кода в текущем потоке на указанное время, можно использовать Thread.sleep(ms), как подметил alexandrage.
 
Зависит от задачи. Если нужно выполнить какой-то сторонний код после определённой задержки, то подойдёт баккитовский шедулер (как предложил HunterGaming). А если же именно приостановить выполнение кода в текущем потоке на указанное время, можно использовать Thread.sleep(ms), как подметил alexandrage.
Если нужны тики сервера, то ведрошедулер подойдет. А если нужно именно время, то мой вариант. Ибо тики зависят от тпс сервера и 20 тиков не всегда = 1 сек.
Обычно задержки юзают на команды и там измеряется точным временем.
 
Если нужны тики сервера, то ведрошедулер подойдет. А если нужно именно время, то мой вариант. Ибо тики зависят от тпс сервера и 20 тиков не всегда= 1 сек.
Всё же в первую очередь от задачи. Шедулеры используются в основном для синхронного доступа к BukkitAPI. Ну, либо же из-за незнания других способов. О банальном new Thread(Runnable).start() практически никто не знает...
В общем не суть. ТС сам решит, что ему нужно, и выберет подходящий способ.
 
Спасибо, и еще вопрос.

Как правильнее использовать это с ивентами.

Приостанавливать выполнение ивента если он вызвался, или пихать ивент внутрь шелдуера?
 
Спасибо, и еще вопрос.

Как правильнее использовать это с ивентами.

Приостанавливать выполнение ивента если он вызвался, или пихать ивент внутрь шелдуера?
Ивент в главном потоке, его нельзя останавливать. И пихать его в отдельный поток так же не получится.
 
Разобрался. Как выяснилось мне было нужно совсем не это

Еще раз спасибо
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх