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

Помогите Запустить метод в определённое время

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

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

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

    Баллы:
    76
    Мне нужно, чтобы метод запускался каждый час в xx:00, даже если я запустил сервер, к примеру, в xx:34.
    Пример:
    Сервер включился в 13:32
    Метод запустился в 14:00
    Метод запустился в 15:00
    Метод запустился в 16:00 и т.д.
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
  3. Автор темы
    nutrolshok

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

    Баллы:
    76
    Без сторонних API никак нельзя обойтись?
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Пиши свое, никто не мешает.
     
  5. NoooobKa

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

    Баллы:
    76
    Имя в Minecraft:
    NoooobKa
    О том, как получить дату и время которое стоит на компе/тачке - https://bukkit.org/threads/how-to-get-the-date-and-time.106959/ . При включении запускай свой метод, который запустить планировщик с указанным «через сколько начать»
     
  6. Автор темы
    nutrolshok

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

    Баллы:
    76
    Спасибо всем за помощь. Не очень сильно помогли, но всё же :)

    Кому интересно, я сделал это так:

    В главном классе написал этот метод и вызываю его при включении сервера:
    Код:
    private void startTask() {
            Timer timer = new Timer();
            Calendar date = Calendar.getInstance();
            date.set(Calendar.MINUTE, 0);
            date.set(Calendar.SECOND, 0);
            date.set(Calendar.MILLISECOND, 0);
            timer.schedule(
                    new Task(),
                    date.getTime(),
                    1000 * 60 * 60
            );
    }
    Код класса Task:

    Код:
    public class Task extends TimerTask {
    
           public void run() {
                  // Code here
           }
    
    }
     
Статус темы:
Закрыта.

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