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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Den-Xs, 15 сен 2013.

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

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

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

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

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

    Main.plugin к примеру
     
    Den-Xs нравится это.
  3. gamelax

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

    Баллы:
    103
    Имя в Minecraft:
    gamelax
    Вместо тысячи слов:
     
    Den_Abr нравится это.
  4. Jampire

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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Что есть, то есть.
     
    Vedroyder нравится это.
  11. Автор темы
    Den-Xs

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

    Баллы:
    103
    Skype:
    denis_314
     

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