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

Помогите Отключение работы плагина в некоторых мирах

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lisenochek, 26 июн 2016.

  1. Novichock

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

    Баллы:
    76
    Skype:
    pavel.batalov1
    Не самая лучшая идея называть класс "Listeners"
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    The constructor Events(Events) is undefined - вот что пишет

    Что я переделал в коде
    Events listener = new Events(this);
     
  4. Novichock

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

    Баллы:
    76
    Skype:
    pavel.batalov1
    Я чуть выше написал что называть классы служебными словами - не самая лучшая идея. И ещё надо регистрировать обработчик события.Так что лучше бы удалить "Events listener = new Events(this);" и в onEnable() добавить Bukkit.getPluginManager().registerEvents(new Events(this), this);
     
  5. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Он не может найти в нем конструктор: The constructor Events(API) is undefined
    При создании конструктора, орет другая строчка.

    Код:
            Bukkit.getServer().getPluginManager().registerEvents(new com.realistic.events.Events(), this);
            Bukkit.getPluginManager().registerEvents(new Events(this), this);
    [DOUBLEPOST=1466932920,1466932890][/DOUBLEPOST]Все лежит в onEnanle в главном классе.
     
  6. Novichock

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

    Баллы:
    76
    Skype:
    pavel.batalov1
    У тебя есть класс "Events"?[DOUBLEPOST=1466933057][/DOUBLEPOST]Этот класс имеет "implements Listener"?
    Вот конструктор класса Events:
    public Events(/*главный класс*/ plugin) {
    this.plugin=plugin;
    }[DOUBLEPOST=1466933124][/DOUBLEPOST]Класс Events должен иметь переменную /* название главного класса*/ plugin
     
  7. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Да, он есть, но лежит в другом пакете для удобства.
    Есть implements Listener[DOUBLEPOST=1466933705,1466933564][/DOUBLEPOST]Поставил этот метод в Events. Ругается: plugin cannot be resolved or is not a field
    На: this.plugin=plugin;[DOUBLEPOST=1466933751][/DOUBLEPOST]Мне кажется, что он не может найти переменную plugins.
     
  8. Novichock

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

    Баллы:
    76
    Skype:
    pavel.batalov1
    Я не писал что надо её добавить?
     
  9. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Забыл))[DOUBLEPOST=1466934597,1466934417][/DOUBLEPOST]А нет, вроде бы добавил(если правильно понял):

    Код:
        public Events(API plugin) {
            this.plugin=plugin;
        }
     
  10. Novichock

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

    Баллы:
    76
    Skype:
    pavel.batalov1
    Ты в сам класс добавил переменную?[DOUBLEPOST=1466935031][/DOUBLEPOST]У тебя должно получиться вот так:
    Код:
    public class Events implements Listener {
    private API plugin;
    
        public Events(API plugin) {
            this.plugin=plugin;
        }
    }
     
  11. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Вот теперь добавил[DOUBLEPOST=1466935442,1466935111][/DOUBLEPOST]Такс. ArrayList добавил в мэйнкласс, Events попросил добавить public перед ArrayList.
    Потом я добавил в onEnable след. строчки.
    this.saveDefaultConfig();
    this.worlds.addAll(this.getConfig().getStringList("worlds"));

    Затем я убрал строчку со старой регистрацией, оставил новую.
    Создал yml файлик, в нем указал мир.
    Вроде бы все. Так все я сделал?
     
  12. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    "Listener" not equals "Listeners".
    А че тут спрашиваешь? Берёшь и проверяшь.
     
  13. Автор темы
    Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Так уже. Все работает! Спасибо вам, ребята! Надо объявлять альфа тест на сервере )
     

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