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

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

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;
        }
 
Использую так, но при на моменте таймера сервер виснет и только после прохождения таймера отвисает

Код:
       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;
       }
 
Использую так, но при на моменте таймера сервер виснет и только после прохождения таймера отвисает

Код:
       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;
       }
Вполне логично, ведь ты приостанавливаешь главный поток
 
Держи
Код:
        Bukkit.getScheduler().runTaskLater(plugin, () -> {
           //То что выполнится через 1000 тиков
        }, 1000);
 
PHP:
        Bukkit.getScheduler().runTaskLater(plugin, () -> {
           Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "espawn");
        }, 216000);
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх