Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как сделать задержку между выполнением кода?

Тема в разделе "Разработка плагинов для новичков", создана пользователем l_Slime_l, 29 июн 2017.

  1. Автор темы
    l_Slime_l

    l_Slime_l Новичок Пользователь

    Баллы:
    11
    Нужно сделать 3 задержки при выполнении кода. Знаю что можно через Шедулеры, но если пихнуть в код 3 Шедулера, будет не очень. Как можно сделать задержки другим способом?
     
  2. Хостинг MineCraft
    <
  3. Lignium

    Lignium Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Lignium
    Thread.sleep(long millis) throws InterruptedException
    Но думаю это не то что вам нужно...
     
  4. Автор темы
    l_Slime_l

    l_Slime_l Новичок Пользователь

    Баллы:
    11
    Это то что мне нужно, но когда я так делаю, у меня сервер просто замирает во время задержки
     
  5. Enay

    Enay Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    EnayNooby
    Что тебе конкретно нужно сделать ?
     
  6. Lignium

    Lignium Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Lignium
    Ну я и говорю, это не то. Сервер работает в одном потоке, и этот метод приостанавливает весь сервер.
     
  7. Автор темы
    l_Slime_l

    l_Slime_l Новичок Пользователь

    Баллы:
    11
    Нужно чтобы сначала выполнялось например p.sendMessage("1"), а через 5 секунд p.sendMessage("2")
     
  8. DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Если делать в отдельном треде, сервер замирать не будет, но не думаю, что надо объяснять то, что работа с энтити и миром возможна лишь в главном потоке сервера. А вообще, для таких целей есть .runTaskTimer в BukkitScheduler
     
  9. Автор темы
    l_Slime_l

    l_Slime_l Новичок Пользователь

    Баллы:
    11
    А .runTaskTimer что делает?
     
  10. DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Bukkit.getScheduler().runTaskTimer(plugin, () -> {
    //код
    }, задержка перед стартом таймера в тиках, интервал между кодом в тиках);

    1 секунда = 20 тиков
     
  11. Автор темы
    l_Slime_l

    l_Slime_l Новичок Пользователь

    Баллы:
    11
    Мне нужно разный интервал между кодом
     
  12. DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    thread
     
  13. Автор темы
    l_Slime_l

    l_Slime_l Новичок Пользователь

    Баллы:
    11
    Отдельный thread делать?
     
  14. DonDays

    DonDays Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Да, если не хочешь, чтобы сервер замораживался на это время
     
  15. Автор темы
    l_Slime_l

    l_Slime_l Новичок Пользователь

    Баллы:
    11
    Хорошо, попробую
     

Поделиться этой страницей