Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

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

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);
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх