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

[РЕШЕНО] Использование scheduleSyncDelayedTask внутри блока scheduleSyncRepeatingTask

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

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

    Тру Кодер Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    haskell_md2
    Здравствуйте. Столкнулся с такой проблемой: Мне нужно использовать scheduleSyncDelayedTask(Задержку) внутри scheduleSyncRepeatingTask(Повторение), но когда я создаю такую конструкцию мне редактор выводит такое сообщение:
    "Метод scheduleSyncDelayedTask(Plugin, Runnable, long) в типе BukkitScheduler неприменим для аргументов (new Runnable(){}, new Runnable(){}, int)". Вопрос: что мне делать?

    P.S. Когда я использую метод scheduleSyncDelayedTask без scheduleSyncRepeatingTask, такой ошибки нету.


    А вот код:
    public void onEnable(){
    getServer().getScheduler().scheduleSyncRepeatingTask(this,new Runnable() { //Метод Повторения


    @Override
    public void run() {
    // TODO Автоматически созданная заглушка метода

    getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){//Метод Задержки
    public void run(){
    getLogger().info("Despasito");
    Bukkit.getServer().dispatchCommand(getServer().getConsoleSender(), "gplay maricone.mid");
    }},(10*20));


    }},0,15);



    }
     
    Последнее редактирование: 15 авг 2019
  2. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    "this" внутри ссылается уже не на плагин, а на первый шедулер. Сделай ссылку на плагин(JavaPlugin plugin = this) перед первым шедулером и используй её вместо "this".
     
  3. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Достаточно просто заменить просто "this" на "ClassName".this. Если класс называется "MyPlugin" - будет "MyPlugin.this"
     
  4. Автор темы
    Тру Кодер

    Тру Кодер Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    haskell_md2
    Большое спасибо! Dymeth и imDaniX я вам очень благодарен!
    Закрываю тему.
     
Статус темы:
Закрыта.

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