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

Помогите Ошибка из за конструктора

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

  1. Автор темы
    SashaX2

    SashaX2 Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    NOTXSK
    Не понимаю из за чего ошибка когда конструктор делаю в классе.

    ошибка: https://pastebin.com/MnBpxDh0


    код:
    upload_2018-8-12_15-13-5.png

    upload_2018-8-12_15-13-19.png
     
  2. FrostDelta123

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

    Баллы:
    76
    Имя в Minecraft:
    FrostDelta123
    У тебя зачем там new Main()? Тебе this в аргументы надо передавать
     
  3. DragSnNaizer

    DragSnNaizer Новичок Пользователь

    Баллы:
    11
  4. Andoroid

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

    Баллы:
    76
    А
    Код:
    Bukkit.getServer().getPluginManager().registerEvents(this, this);
    
    Убрали?
     
  5. Exception_Prototype

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

    Баллы:
    96
    У него слушатель другим классом сделан.
    А если ты про Bukkit.getServer() - то какая разница?
     
  6. Nikolai_Faint

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

    Баллы:
    96
    Убрал new registerEvents.
     
  7. Exception_Prototype

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

    Баллы:
    96
    Зачем? Как тогда в его случае он класс слушатель тогда будет регать?
     
  8. Nikolai_Faint

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

    Баллы:
    96
    Я написал что он изменил. А в его случае он регистрирует класс на Main.
     
  9. php5master

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

    Баллы:
    66
    Никогда не вызывай конструктор главного класса! Это всегда приводит к ошибке! Нужно делать всё через уже существующий экземпляр, а не делать новый. Т.е. в главном классе главный класс нужно передавать словом this, а если ты хочешь вызвать методы из главного класса, то как-то так надо делать:
    PHP:
    class Main extends JavaPlugin {
      private static 
    Main instance;

      public 
    void onEnable(){
        
    instance this// сохраняем текущий экземпляр
      
    }
     
      public static 
    Main getInstance() {
        return 
    instance;
      }

    }
    PHP:
    public void test() {
      
    Main.getInstance().getConfig()....
    }
    Тобишь решением твоей проблемы будет передача в Listiner не new Main(), а this. Но я же люблю всё делать через инстанцию, так проще и в Main после инстанции никакие конструкторы и лишнего кода для передачи экземпляра добавлять не надо
     
    Последнее редактирование: 17 авг 2018

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