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

Помогите Разделение главного класса на другие классы

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

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

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

    Баллы:
    31
    Здравствуйте, можете пожалуйста подсказать, как сделать слушатель события в другом классе что бы он работал как в главном классе?
     
  2. Хостинг MineCraft
    <
  3. Laitz

    Laitz Новичок

    Баллы:
    6
    package packet;
    import java.util.ArrayList;
    import org.bukkit.event.Listener;


    public class EventManager implements Listener{
    private static ArrayList<Listener> list = new ArrayList<Listener>();

    public EventManager(){
    //registerNewEvent(new EventClickEntity());
    }

    public void loadEvents(Plugin pl){
    pl.getServer().getPluginManager().registerEvents(pl, pl);
    for(Listener l : getList()){
    pl.getServer().getPluginManager().registerEvents(l, pl);
    //ЗАГРУЖАЕШЬ В ГЛАВНОМ КЛАССЕ В onEnable
    }
    pl.getLogger().info("Events loaded...");
    }
    public void unregisterEvent(Listener lisner){
    list.remove(lisner);
    }
    public void registerNewEvent(Listener lisner){
    list.add(lisner);
    }

    public ArrayList<Listener> getList(){
    return list;
    }

    }[DOUBLEPOST=1488748829,1488748409][/DOUBLEPOST]Если конеш тебе это все не нужно (Нужно только чтобы в другом классе было)
    Создаешь класс где у тебя будет EventHandler и твой ивент - и в Main классе в методе onEnable пишешь:

    getServer().getPluginManager().registerEvents(new InteractEvent(), this);
    Заместо new InteractEvent() свой класс где у тебя ивент
     
  4. Dymeth

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

    Баллы:
    76
    Bukkit.getPluginManager().registerEvents(Listener, Plugin) принимает 2 аргумента - объект слушателя и объект плагина, который "отвечает за этот слушатель".
    Объект слушателя - экземпляр класса, который наследует интерфейс Listener:
    Код:
    public class TestingListener implements Listener {
        
    }
    Ну а плагин - соответственно, экземпляр класса, наследующего Plugin - проще говоря, главный класс.
    Поэтому зарегистрировать слушатель можно таким образом:
    Код:
    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(new TestingListener(), this);
    }
    new TestingListener() - новый объект слушателя (т.к. ранее его не создавали)
    this - объект текущего класса - плагин (был создан ядром)
     

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