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

Туториал Урок по созданию плагинов на Bukkit API и BungeeCord API.

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Cororo, 5 ноя 2019.

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

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

    Баллы:
    76
    Имя в Minecraft:
    TheSirCororo
    Однако, здравствуйте форумчане.
    Я представляю к вашему вниманию туториал от меня по созданию плагинов на Bukkit API или BungeeCord API. Требуется базовое знание Java.
    Ориентация по теме:
    Глава 1. Создание плагинов Bukkit API.
    Урок 1.1. Создаём наипростейший плагин.
    Урок 1.2. Ивенты
    Урок 1.3. Команды
    Урок 1.4. Конфиги и MYSQL
    Глава 2. Создание плагинов BungeeCord API.
    Урок 2.1.
    Урок 2.2.
    Глава 1. Создание плагинов Bukkit API.
    Урок 1.1. Создаём наипростейший плагин.
    Вот вы и дочитали до урока. Итак, поехали.

    После создания пустого проекта добавляем библиотеки Bukkit API (добавьте в библиотеки просто jarник Spigotа или другого Bukkit-ядра). Создаём пакет, назвать его можно по любому. В пакете создаём класс, желательно с названием Main (главный), т.к. это будет главный класс. Чтобы сказать ядру, что этот проект - плагин? нам надо унаследовать наш главный класс от класса JavaPlugin:
    PHP:
    package com.test;

    import org.bukkit.plugin.java.JavaPlugin;

    public class 
    Main extends JavaPlugin {
    }
    Но этого недостаточно для работы плагина. Создаём в src файл plugin.yml и заполняем его так:
    PHP:
    maincom.test.Main
    version
    1.0.0
    name
    TestPlugin
    Вместо com.test - пакет, в котором находится класс Main.
    Вместо 1.0.0 - любая другая версия вашего плагина.
    Вместо TestPlugin - название вашего плагина.
    Ура! Теперь если вы скомпилируете этот плагин и засунете в /plugins вашего сервера, сервер найдёт этот плагин. Правда, сейчас он у нас вообще без функционала. Давайте будем выводить в консоль при включении сообщение "Я работаю!" :D. В JavaPlugin есть 3 метода, которые реагируют на состояние плагина: onEnable() - при включении, onLoad() - при загрузке, onDisable() - при выключении. Мы хотим выводить при включении. Запишем все эти методы в класс:

    PHP:
    package com.test;

    import org.bukkit.plugin.java.JavaPlugin;

    public class 
    Main extends JavaPlugin {
        @
    Override
        
    public void onEnable(){
        }
        @
    Override
        
    public void onDisable(){
        }
        @
    Override
        
    public void onLoad(){
        }
    }
    Нам нужно при включении писать "Я работаю!", так? Это и сделаем! Добавим в тело метода onEnable() код, который выводит в консоль информацию через класс Logger.
    PHP:
    package com.test;
    import org.bukkit.plugin.java.JavaPlugin;

    public class 
    Main extends JavaPlugin {
        @
    Override
        
    public void onEnable(){
            
    getLogger().info("Я работаю!");
        }
        @
    Override
        
    public void onDisable(){
        }
        @
    Override
        
    public void onLoad(){
        }
    }
    Вывод консоли:
    Код:
    [INFO] [TestPlugin] Я работаю!

    Так же можно написать предупреждение или ошибку в консоль. Для этого есть методы warning() и severe(). warning() - выводит предупреждение, severe() - ошибку:
    PHP:
    package com.test;
    import org.bukkit.plugin.java.JavaPlugin;
    public class 
    Main extends JavaPlugin {
        @
    Override
        
    public void onEnable(){
            
    getLogger().info("Я работаю!");
            
    getLogger().warning("Я предупреждаю!");
            
    getLogger().severe("У меня ошибка(");
        }
        @
    Override
        
    public void onDisable(){
        }
        @
    Override
        
    public void onLoad(){
        }
    }
    Вывод консоли:
    Код:
    [INFO] [TestPlugin] Я работаю!
    [WARN] [TestPlugin] Я предупреждаю!
    [ERROR] [TestPlugin] У меня ошибка(
    В итоге за этот урок мы научились создавать плагин, чтобы его обнаружило ядро и выводить информацию, предупреждение, ошибку. Ждите следущие уроки, с вами был Cororo, всем пока :)
     
    Последнее редактирование: 6 ноя 2019
  2. Sneyzi

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

    Баллы:
    76
    Оформление просто супер, а этот яркий красный цвет!
     
  3. Автор темы
    Cororo

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

    Баллы:
    76
    Имя в Minecraft:
    TheSirCororo
    РЕЗЕРВ
     
  4. Автор темы
    Cororo

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

    Баллы:
    76
    Имя в Minecraft:
    TheSirCororo
    xD. В следущих уроках буду меньше красного цвета использовать :)
     
  5. MonterLike1

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

    Баллы:
    16
    Имя в Minecraft:
    MonterLike
    годно, делай больше таких гайдов.
    только все равно не получаеться(
     
    Последнее редактирование: 6 ноя 2019
  6. mc-luxe

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

    Баллы:
    88
    Цвет текста вырвиглазный. Я думаю, тёмно-серый цвет должен подойти.
     
  7. ry0shi

    ry0shi Ньюби

    Баллы:
    1
    Имя в Minecraft:
    ry0shi1337
    афигеть, спасибо папаша, ведь весь функционал плагинов только в выводе строчек в лог. Блин, а ты не мог сообщить, где, черт возьми, взять документацию спигота?? в общем доступе через яндекс поиск его нет, а ты откуда-то берёшь все эти методы, аргументы и переменные. Миллионный недогайд из таких же недогайдов, которые говорят только как начать, но не говорят, как по-настоящему писать плагины.
     
  8. Overwrite

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

    Баллы:
    98
    Имя в Minecraft:
    artcart
    Чел не осилил поиск... печально.
     
  9. OJIEKCAHDP

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

    Баллы:
    76
    Имя в Minecraft:
    OJIEKCAHDP
    Если знаешь джаву - этого достаточно. Если не знаешь джаву - этого достаточно. Остальное за тебя делает поиск и умение правильно формулировать вопросы.:good:
     
  10. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Чтобы что-то найти - нужно хотя бы начать искать: https://yandex.ru/search?text=spigot+docs
    Если ты не в состоянии искать информацию - тебе ни один в мире гайд не поможет
     
  11. cactus888

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

    Баллы:
    76
    может это был сарказм? если это так, то сарказм получился душный и не смешной
     
  12. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Где тут сарказм?
     
  13. Miriko

    Miriko Участник

    Баллы:
    31
    Имя в Minecraft:
    DOh1221
    Где продолжение?
     

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