1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Создайте таймер

Тема в разделе "Разработка плагинов для новичков", создана пользователем Taloff, 10 дек 2019.

Статус темы:
Закрыта.
  1. Автор темы
    Taloff

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

    Баллы:
    61
    Здравствуйте все, привет всем.
    Суть такова нужно вместо комментария сделать таймер на 3 часа после которого, будет выполнен код
    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "espawn");
    Заранее спасибо
    Вот сам код:
    Код:
            if (e.getEntityType() == EntityType.GIANT) {
                p.sendMessage(ChatColor.YELLOW + "Вы убили БОССА, и получили за это " + ChatColor.RED + "1000$");
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "eco give " + p.getName() + " 1000");
                Location playerLoc = p.getLocation();
                for (Player pl : Bukkit.getOnlinePlayers()) {
                if (playerLoc.distance(pl.getLocation()) <= 100) {
                    pl.teleport(new Location(playerLoc.getWorld(), -42.500, 71, 249.500));
                }
                }
                // здесь нужно сделать таймер //
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "espawn");
                return;
            }
    
     
  2. AgentJhonny

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

    Баллы:
    66
    Scheduler юзай
     
  3. Автор темы
    Taloff

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

    Баллы:
    61
    Использую так, но при на моменте таймера сервер виснет и только после прохождения таймера отвисает

    Код:
           if (e.getEntityType() == EntityType.GIANT) {
               p.sendMessage(ChatColor.YELLOW + "Вы убили БОССА, и получили за это " + ChatColor.RED + "1000$");
               Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "eco give " + p.getName() + " 1000");
               Location playerLoc = p.getLocation();
               for (Player pl : Bukkit.getOnlinePlayers()) {
               if (playerLoc.distance(pl.getLocation()) <= 100) {
                   pl.teleport(new Location(playerLoc.getWorld(), -42.500, 71, 249.500));
               }
               }
               // здесь нужно сделать таймер //
               Thread.sleep(10000);
               Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "espawn");
               return;
           }
    
    
     
  4. TrashCode

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

    Баллы:
    31
    Имя в Minecraft:
    TrashCode
    Вполне логично, ведь ты приостанавливаешь главный поток
     
  5. Автор темы
    Taloff

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

    Баллы:
    61
    Как сделать чтобы код слип ни на что не влиял?
     
  6. MurlikMurlik

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

    Баллы:
    96
    Держи
    Код:
            Bukkit.getScheduler().runTaskLater(plugin, () -> {
               //То что выполнится через 1000 тиков
            }, 1000);
     
  7. Luminate_

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

    Баллы:
    76
    Имя в Minecraft:
    Luminate_
    PHP:
            Bukkit.getScheduler().runTaskLater(plugin, () -> {
               
    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "espawn");
            }, 
    216000);
     
  8. Автор темы
    Taloff

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

    Баллы:
    61
    Спасибо
     
Статус темы:
Закрыта.

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