[Bukkit API] - написание плагинов

Инструкция [Bukkit API] - написание плагинов

Поддерживаемые версии
1.12
Всем привет. Статья будет посвящена написанию плагинов, а точнее, основным пунктам, которые я тут разберу.
Во-первых, нужно знать основы Java. Я пытаюсь учиться по O'Reilly "Изучаем Java", однако лучше купить ее бумажную версию - по ней легко учится. Цена в интернет-магазинах равняется примерно 930 рублям.
Можно использовать для каких-либо вопросов касающихся Java YouTube, некоторые сайты (javarush и в качестве "справочника" java-study.ru), toster, и подобные.
Сайт Java
Форум для разработчиков Java
Сборник статей по Java

Просьба учесть, что некоторые сайты будут на английском языке, и лучше всего знать его, хотя можно запастись переводчиком)

Во-вторых, нужно уметь работать с документацией (привет Соседик). Документация есть и у Java, и у Bukkit API, вот ссылки:
Bukkit API Docs
Java 8 Docs

578

Оба дока на английском, но это не очень страшно.
Если есть какие-либо идеи или вопросы "а как?", можно воспользоваться поиском по словам: он весьма удобный.
579

Я не знаю что еще можно добавить по этому поводу, разве что документацию можно подключить к IDE.

В-третьих, нужно уметь пользоваться поисковиком. Все что Вы задумали - уже давно придумано за Вас. Как минимум реализация). Большинство вопросов, которые могут возникнуть, легче найти сначала в поисковике, чем спросить на форуме.

Работать можно с любым API, и сочетать тоже: мы можем использовать YouTube API, VK API и Bukkit API одновременно, но только зачем нам YouTube...


Часть первая: IDE
Вообще, существует огромное количество IDE (Integrated Development Environment - Интегрированная Среда Разработки): Intellij IDEA, Eclipse, NetBeans, Dr Java и прочие, но для разработки Dr Java вряд ли подойдет, скорее для обучения, так как не требователен к ресурсам и имеет portable-версию.

Intellij IDEA
Eclipse
NetBeans


Выбирайте ту, которая нравится больше, но лучше найти минутку свободного времени и протестировать каждую. В туториале будет Eclipse, но действия с другими IDE аналогичны.

После загрузки и установки, откройте IDE. Появится окошко выбора рабочей директории, можно выбрать нужный путь или оставить все как есть и нажать Launch.
580


Откроется рабочее пространство. Жмем Windows в Tool-баре, Preferences, находим General, в нем Workspace и меняем в самом низу кодировку на Other: UTF-8, принимаем и выходим.
581

(У меня темная тема, не пугайтесь)

Вроде бы все.

Перед дальнейшим прочтением просьба: быстренько пробежаться по урокам по Java, написать простую программу и отдохнуть). Было бы неплохо прочитать про переменные, массивы, условия, циклы (особенно for), классы и объекты (хотя ООП это не просто), и немного попрактиковаться, так как это все поможет в дальнейшем.

Создание проекта
Итак, я не могу закончить первую часть не написав ни строчки кода. В Tool-баре находим File -> Java Project, вводим название проекта, жмем Finish.
582

Мы создали новый проект, который появился у нас в левой части экрана (Package Explorer - Менеджер Пакетов). Нажимаем по нему ПКМ, ищем Build Path -> Configure Build Path... и у нас появляется окно с настройками проекта, а конкретнее, Build Path. Наверху есть несколько кнопок, выбираем там Libraries, справа появляется несколько кнопок. Выбираем Add External Jars... и у нас открывается окно проводника, где мы должны выбрать ядро сервера. Его можно собрать самому, или скачать с get.bukkit.org

583

Вернемся к Package Explorer. В пакете src создаем plugin.yml: ПКМ -> New -> File. Похожим образом создаем пакет своего плагина - он обычно состоит из трех частей, однако его имя может состоять и из одной. Пакет состоит из <домен>.<имяразработчика>.<названиепроекта/плагина/программы>, но может быть и <домен>.<имяразработчика>, или вообще <проект>, разницы нет. Я создаю пакет ru.spigotru.plugin, где ru - домен, spigotru разработчик, а plugin название проекта. Нет разницы какой домен вы будете использовать.
Теперь Package Explorer приобретает такой вид:
584

Первый плагин
Создаем в нашем пакете новый класс - он создается аналогично что и другие пакеты/файлы/прочие, и имеет имя "Class" в выпадающем меню. Называем его так, как называется Ваш плагин, но лучше использовать Main. Пока что, он очень пустой
585

Где public class Main дописываем перед скобочкой extends JavaPlugin - мы наследуем класс плагина Bukkit API.
IDE начнет ругаться, но предложит решение проблемы: просто нажмите на лампочку, и выберете подходящий вариант. В этом случае import org.bukkit.plugin.java.JavaPlugin;
586

Теперь все нормально:
587

В теле класса пишем аннотацию @Override - эта аннотация как бы говорит компилятору что мы переопределяем метод. Сразу после, на следующей строке пишем public void onEnable() { }
Код примет следующий вид:

Java:
package ru.spigotru.plugin;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
    @Override
    public void onEnable() {
    
    }
}
В onEnable (между фигурных скобочек) можно дописать
Java:
Logger log = Logger.getLogger();
log.info("Мой первый плагин!");
Код примет следующий вид:

Java:
package ru.spigotru.plugin;

import java.util.logging.Logger;

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
    @Override
    public void onEnable() {
        Logger log = getLogger();
        log.info("Мой первый плагин!");
    }
}
Вернемся к plugin.yml.
Все plugin.yml имеют один вид, нам хватит для начала этого:

YAML:
name: FirstPlugin
main: <пакет>.<главный_класс>
version: 1.0
В name: может быть любое имя плагина, main должен содержать имя пакета и имя главного класса (в моем случае ru.spigotru.plugin.Main), version - версия.
Сохраняем файл.
Для экспорта кода в Jar, нам нужно нажать ПКМ по проекту, выбрать Export -> JAR file, выбрать нужный проект, и путь, куда он будет сохранен.
Жмем Finish, копируем плагин себе на сервер, запускаем, и в консоли должно появится "[Имяплагина] Мой первый плагин!"

Пока что это все. Завтра будет интереснее.
Автор
q20w26a
Просмотры
2,959
Первый выпуск
Обновление
Рейтинг
5.00 звезд Оценок: 1

Другие ресурсы пользователя q20w26a

Последние рецензии

Продолжай в том же духе, только исправь "Кот" на "Код", а то мой котэ испугался :(
q20w26a
q20w26a
Исправил. Странно, что я так написал.

Комнаты в чате

Верх Низ