Войти или зарегистрироваться

Помогите Как реализовать таймер

  • Автор темы Автор темы Aviloo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Aviloo

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
Aviloo
Всем привет. Недавно , я столкнулся с проблемой и прошу вас помочь мне. Я хочу реализовать таймер ,что-то на примере подобного :
Код:
p.sendMessage("Ты получил эффект");
// Тут должен быть сам таймер
p.setScoreboard(scoreboardsNull);
Иными словами, это таймер между двумя действиями . Т.е после отправки сообщения ,например , в течении 5 секунд ничего не происходит , а по прошествии этого времени - устанавливается скорборд .
Пытался использовать стандартный способ ,через TimeUnit.SECONDS.sleep(5) , но оно и не удивительно ,что не сработало , вернее сработало , но не так как задумывалось . Он действительно сделал паузу между действиями , но просадил тпс на 4- 6 единиц и создавал паузу не только между этими действиями , а буквально в работе сервера . Пытался найти ,что-то иное по схожим запросам , но вероятно я плохо искал ,раз в результате ничего подходящего не наше . Прошу помочь , заранее спасибо .
 
Потому что это останавливает весь поток - т.е. весь сервер буквально замирает на эти самые 5 секунд на этой строке кода. Чтобы откладывать действия, следует использовать шедулер.
PHP:
Plugin plugin; // Экземпляр твоего плагина
long ticks = 40; // На сколько тиков отложить выполнение
p.sendMessage("Ты получил эффект");
Bukkit.getScheduler().runTaskLater(plugin, () -> {
    p.setScoreboard(scoreboardsNull);
    // TODO Остальной код, если требуется
}, ticks);
 
Потому что это останавливает весь поток - т.е. весь сервер буквально замирает на эти самые 5 секунд на этой строке кода. Чтобы откладывать действия, следует использовать шедулер.
PHP:
Plugin plugin; // Экземпляр твоего плагина
long ticks = 40; // На сколько тиков отложить выполнение
p.sendMessage("Ты получил эффект");
Bukkit.getScheduler().runTaskLater(plugin, () -> {
    p.setScoreboard(scoreboardsNull);
    // TODO Остальной код, если требуется
}, ticks);
Спасибо БОЛЬШОЕ , помогло .


Тема закрыта!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх