Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите При запуске scheduleSyncDelayedTask выдаёт ошибку

Discussion in 'Разработка плагинов для новичков' started by Den-Xs, Sep 15, 2013.

  1. Автор темы
    Den-Xs

    Den-Xs Старожил Пользователь

    Trophy Points:
    103
    Skype:
    denis_314
    То ли руки у меня кривые, то ли ещё что...
    Собственно, вот этот код
    Code:
    public void runSchedule() {
        getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { //на этой строке вылетает с NullPointerException
            public void run() {
                Logger.getLogger("Minecraft").info("Код выполнен!");
            }
        }, 1L);
    }
    выдаёт ошибку NullPointerException, при том что в том же классе тем же образом благополучно запускается scheduleSyncRepeatingTask (да, это main-класс плагина).
    Собсно, не знаю что и делать (((
     
  2. Хостинг MineCraft
    <
  3. Jampire

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

    Trophy Points:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    в твоём случае this имеет совершенно другое значение.
    Сделай в главном классе статическую переменную типа Plugin и при старте плагина заполни ее plugin = this;
    Тогда из любой части плагина сможешь вызвать этот функционал.

    Main.plugin к примеру
     
    Den-Xs likes this.
  4. gamelax

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

    Trophy Points:
    103
    Имя в Minecraft:
    gamelax
    Вместо тысячи слов:
     
    Den_Abr likes this.
  5. Jampire

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

    Trophy Points:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    ;) Я дал лишь совет, не обязательно делать как я говорю. Я считаю этот вариант нормальным и мне норм)
     
  6. Автор темы
    Den-Xs

    Den-Xs Старожил Пользователь

    Trophy Points:
    103
    Skype:
    denis_314
    @gamelax, я конечно всё понимаю, но Jampire дал вполне работающий вариант. Если знаешь, как сделать лучше - скажи!
     
  7. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Шта? Если код находится в главном классе, то this это будет класс, наследующий JavaPlugin, что и нужно шедулеру
     
  8. Автор темы
    Den-Xs

    Den-Xs Старожил Пользователь

    Trophy Points:
    103
    Skype:
    denis_314
    Тогда почему у меня код не работал?
     
  9. Jampire

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

    Trophy Points:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Насколько я понял из его поста - он пытался this использовать не в основном классе, в итоге получил далеко не JavaPlugin. Простите уж, если не правильно прочитал )
     
    Сникерсни likes this.
  10. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Со стороны автора неправильно присылать кусок трассировки, нам приходится гадать по коду
     
  11. Jampire

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

    Trophy Points:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Что есть, то есть.
     
    Vedroyder likes this.
  12. Автор темы
    Den-Xs

    Den-Xs Старожил Пользователь

    Trophy Points:
    103
    Skype:
    denis_314
     

Share This Page