Помогите пример написания runtask для getscheduler

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

krovinosets

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
Krovinosets
Я только начал писать на Java, так шо я аут в этом деле
Моя проблема проста, я не знаю что написать в arg1 для runtask.
Код:bandicam 2019-06-27 20-13-08-756.jpg
То есть в arg0 я записываю переменную, а в arg1 требуется Runnable, и я не знаю как его записать.
Я это делал, чтобы если нет грозы, то он бы запускал таймер, проверяющий грозу и в следствии отправлял сообщение. Это чисто мой метод. Так же, если runtask не является вызывателем таймера, то прошу, поправите меня, спасибо.
Пожалуйста, дайте пример того, как это делается.
 
Я только начал писать на Java, так шо я аут в этом деле
Моя проблема проста, я не знаю что написать в arg1 для runtask.
Код:Посмотреть вложение 54231
То есть в arg0 я записываю переменную, а в arg1 требуется Runnable, и я не знаю как его записать.
Я это делал, чтобы если нет грозы, то он бы запускал таймер, проверяющий грозу и в следствии отправлял сообщение. Это чисто мой метод. Так же, если runtask не является вызывателем таймера, то прошу, поправите меня, спасибо.
Пожалуйста, дайте пример того, как это делается.
Гугл?
 
Я только начал писать на Java, так шо я аут в этом деле
Моя проблема проста, я не знаю что написать в arg1 для runtask.
Код:Посмотреть вложение 54231
То есть в arg0 я записываю переменную, а в arg1 требуется Runnable, и я не знаю как его записать.
Я это делал, чтобы если нет грозы, то он бы запускал таймер, проверяющий грозу и в следствии отправлял сообщение. Это чисто мой метод. Так же, если runtask не является вызывателем таймера, то прошу, поправите меня, спасибо.
Пожалуйста, дайте пример того, как это делается.
new Runnable() если хочешь новый создать
 
а если уже созданный использовать, то как это записать
Когда ты создовал int q ты мог перед этим отдельно создать Runnable.
Runnable runnable = new Runnable, когда создавал Int q просто вместо new Runnable указать runnable, который ты создал. Так же при runTask
 
Я только начал писать на Java, так шо я аут в этом деле
Моя проблема проста, я не знаю что написать в arg1 для runtask.
Код:Посмотреть вложение 54231
То есть в arg0 я записываю переменную, а в arg1 требуется Runnable, и я не знаю как его записать.
Я это делал, чтобы если нет грозы, то он бы запускал таймер, проверяющий грозу и в следствии отправлял сообщение. Это чисто мой метод. Так же, если runtask не является вызывателем таймера, то прошу, поправите меня, спасибо.
Пожалуйста, дайте пример того, как это делается.
Я бы не использовал на твоем месте устаревшие методы создание шедулеров.
Ибо в устаревших нужно где то хранить номер задачи, чего нет в новых шедулерах. (точнее оно не обязательно)
Юзай это
Код:
        Bukkit.getScheduler().runTaskTimer(plugin, () -> {
            //запускай что нужно
        }, 20, 20);
 
Я бы не использовал на твоем месте устаревшие методы создание шедулеров.
Ибо в устаревших нужно где то хранить номер задачи, чего нет в новых шедулерах. (точнее оно не обязательно)
Юзай это
Код:
        Bukkit.getScheduler().runTaskTimer(plugin, () -> {
            //запускай что нужно
        }, 20, 20);
Хех, почти аналогичная система ток на лямбде)
 
Хех, почти аналогичная система ток на лямбде)
Не в лямбде дело. Тут можно создать свой класс, наследовать BukkitRunnable а там уже в конструкторе описать какой тип таймера запустить, а там уже переопределить метод run()
А в главном классе например, инициализировать переменную этого класса и уже имеем гибкий таймер со всеми функциями из под коробки.
 
PHP:
    public void onEnable() {
        File config = new File(getDataFolder() + File.separator + "config.yml");
        if(!config.exists()) {
            getConfig().options().copyDefaults(true);
            saveDefaultConfig();
        }
        BukkitRunnable runnable = new BukkitRunnable() {
            @Override
            public void run() {
                Bukkit.getOnlinePlayers().forEach(p -> {
                    if(p.getWorld().hasStorm() || p.getWorld().isThundering()) {
                        Block block = p.getWorld().getHighestBlockAt(p.getLocation());
                        if(block.getLocation().getBlockY() <= p.getLocation().getY() + 1 && !p.getGameMode().equals(GameMode.CREATIVE)) {
                            p.damage(getConfig().getInt("DAMAGE"));
                            p.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("MESSAGES.IN_RAIN")));
                        }
                    }
                });
            }
        };
        
        runnable.runTaskTimer(this, 25, 25);
    }

Вот код на кислотный дождь. Подредактируй его под себя, заместь дамага снимай/запускай ранейбл, и всё в том духе.
P.s. мне лень было писать код с нуля, кинул тот что есть 😁
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх