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

Помогите Помогите разобраться с начальным кодом (Уровень: Супер новичок)

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

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

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

    Баллы:
    61
    Всем привет, уже имею предположение, что ответы будут по типу: "В интернете и так все есть", "Гугл в помощь" и т.п. Но, все таки, я спрошу. Я попрошу внятно разжевать какие из ниже перечисленных строк что делают, чем являются и за что отвечают? Я буду крайне благодарен, ведь поняв на 100%, я стану куда лучше понимать структуру написания плагинов.
    Код:
        public void onEnable() {
            Bukkit.getPluginManager().registerEvents(new Handler(),this);
            this.getLogger().info("Plugin was Enable!");
        }
    На сколько я понял, тут мы вызываем метод onEnable, который переопределяем?
    Следующая строка мне не очень понятна(можно сказать, совсем не понятна), объясните ,пожалуйста,
    что делает каждый из методов в ней, куда обращается?

    Дальше мне не совсем понятная эта конструкция:
    Код:
    public class Handler implements Listener{
        @EventHandler
        public void onBlock(BlockBreakEvent e) {
            Player p = e.getPlayer();
        }
    }
    Мы создаем метод onBlock, в котором вписываем аргумент, в виде события(кстати, чем является событие, тоже методом?). И мне эта часть не понятна, public void onBlock(BlockBreakEvent e), что означает эта буква "е", объясните, пожалуйтса, что это вообще такое?
    Извините за столь глупые и, скорее всего, неправильные вопросы.Но по другому я не смог... :c
     
  2. alexandrage

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

    Баллы:
    173
  3. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
  4. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Регистрируем слушатель событий (Handler).
    Бесполезная строка кода, которая посылает в лог сообщение о включении плагина.
    Этот метод будет запускаться каждый раз, когда событие будет случаться (в примере - разрушение блока игроком).
    Переменная, которая принимает значение события BlockBreakEvent - можешь её иначе назвать, если есть желание.
     
  5. alexandrage

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

    Баллы:
    173
    Там все подробно от и до. Нечего боятся.
     
  6. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Ну если уж доходит до такого, что непонятна к примеру та же буква "e", то крайне рекомендую хорошо подучить основы Java, ибо без этого будет крайне трудно тебе понимать, потому что учить основам здесь никто не будет, здесь помощь по Bukkit API и т.п., а не центр изучения языка программирования.

    Довольно неплохой учебник по Java: "Герберт Шилдт Java 8. Полное руководство". Если хорошо поискать, можно найти бесплатно. Есть еще для начинающих, возможно будет проще, но помоему там намного хуже все описывается, и даже для новичков полное руководство легче.

    Все же кратко опишу твой запрос:
    1)
    PHP:
    // Данный класс наследует JavaPlugin, его сервер использует, чтобы запускать данный плагин
    // По умолчанию при старте он вызывает onEnable()
    public void onEnable() {
        
    // Bukkit.getPluginManager() возвращает PluginManager (класс отвечающий за управление плагинами)
        // PluginManager#registerEvents(listener, plugin) регистрирует твой слушатель для событий
        // позже он будет использовать этот слушатель, чтобы вызывать методы, которые там есть
        
    Bukkit.getPluginManager().registerEvents(new Handler(),this);
        
    this.getLogger().info("Plugin was Enable!");
    }
    2)
    PHP:
    public class Handler implements Listener {
        
    // EventHandler - аннотация, служит в целом для определения, что данный метод сервер будет вызывать при определенном событии (аргумент)
        
    @EventHandler
        
    public void onBlock(BlockBreakEvent e) {
            
    // Собственно e - идентификатор обьекта класса BlockBreakEvent (или же просто обьект простыми словами)
            
    Player p e.getPlayer();
        }
    }
     
  7. Автор темы
    Nicolas_Nicolay

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

    Баллы:
    61
    Спасибо всем за ответы, я очень благодарен за адекватные ответы на не адекватный вопрос :) Тему можно закрывать
     
  8. alexandrage

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

    Баллы:
    173
    Капец вы насрали. ТС просто стебется же.
     
  9. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Скажем так, чем кормят, тем и срем.
     

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