Первый мой туториал, просто хочу донести инфу до людей которые хотят этим заниматься, но не знают где начать. Не судите строго.
Стоит отметить что навыки работы с серверами, так же как и опыт в программировании это очень хорошо и поможет вам в дальнейшем. Если нет, будет чуть сложнее это все понимать.
Писать наши плагины мы будем на Java, так что начать стоит с выбора среды разработки (IDE). Лично я начинал с Eclipse, потом перешел на IntelliJ IDEA. Просто качаем Eclipse и не паримся.
После запуска Eclipse предлагает нам создать рабочее пространство (workspace), размещаем где угодно, я оставлю как есть.
Ну, мы тут плагины писать собирались, так что давайте создадим наш проект. Снизу от Package Explorer нажимаем на Create a Java project.
Вписываем в Project name имя вашего плагина. Далее - Finish. Теперь у нас есть проект, уже что-то. Смотрим версию нашего сервера, я лично буду писать на 1.12.2, вы можете учиться на любой другой версии. Некоторые моменты в написании кода под разные версии отличаются.
Для теста наших плагинов нам нужен локальный сервер, идём качать ядро. Bukkit или Spigot - значения не имеет, нам просто плагины потестить. Тестовый сервер в особой настройке не нуждается, просто выдаём себе опку и радуемся жизни.
Возвращаемся в Eclipse. На данный момент мы можем просто писать на Java и не париться, но нам нужно писать плагины. Нам нужно подключить библиотеку, наше ядро сервера. Прожимаем Alt + Enter, видим вот это.
Add External JARs, выбираем наше ядро, Apply and Close.
Снова прожимаем Alt +Enter, Java Compiler, убираем галочку под JDK Compliance, и ставим Compieler Compliance Level на 1.8, это важно.
Всё, библиотеку мы подключили, теперь надо создать пакеты.
Пакеты в Java позволяют организовать классы логически в наборы. Кроме того, пакеты могут иметь вложенные пакеты ( можно создать пакет в пакете который в пакете, ы). ПКМ по src, new, Package. При названии пакета можете писать me.<ник>.<название плагина>
Далее нужно создать главный класс. Я не могу тут объяснять что такое классы в Java, советую почитать об этом либо сейчас, либо позже. Для создания класса в нашем пакете, ПКМ по пакету, new, Class. Название главного класса должно совпадать с Plugin name.
После этого вы должны увидеть примерно это.
Время писать код. В коде ниже мы наследуемся от класса JavaPlugin. Это значит что мы добавляем свой код, который будет отвечать за наш плагин.
Резонный вопрос: почему оно подчёркнуто? Все просто, мы не импортировали класс JavaPlugin. Если навести на ошибку, Eclipse предложит возможные варианты решения, первый из них, это и есть импорт.
Теперь наш код выглядит так:
package me.temez.MyPlugin;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin{
}
Следующее что я предлагаю сделать, это сообщение в консоль сервера при включении нашего плагина. Любой плагин содержит метод onEnable(), вызывается он при его включении. Так-же существует и метод onDisable(). В коде это выглядит вот так:
package me.temez.MyPlugin;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin{
@Override
public void onEnable() {
}
@Override
public void onDisable() {
}
}
@Override отвечает за переопределение метода, просто запомните что перед этими двумя методами ставится эта аннотация. Сейчас эти методы ничего не делают, время это исправить.
package me.temez.MyPlugin;
import java.util.logging.Logger;
import org.bukkit.plugin.java.JavaPlugin;
public class MyPlugin extends JavaPlugin{
Logger log = getLogger();
@Override
public void onEnable() {
log.info("Работает, аче");
}
@Override
public void onDisable() {
}
}
Методом getLogger() получаем наш логгер, записываем в переменную log. Класс Logger содержит в себе метод info(<сообщение>), котрый и выводит сообщение в консоль. Теперь можно и скомпилировать наш плагин, но для начала нужно добавить один файл: plugin.yml в src
name: Имя плагина
main: Главный класс
version: Версия
Для экспорта кликаем File, Export, Java, JAR File. Указываем путь для экспорта, можете ставить сразу папку с плагинами на локальном сервере, ну и кликаем Finish.
После запуска сервера, в консоль будет выведено сообщение о включении нашего плагина. Хоть консоль имеет некоторые проблемы с Русским языком, но это уже какой-то профит.
Это только начало, и я буду писать ещё статьи на эту тему, если это кому-то интересно.
aleksandy
Начать надо с изучения учебника Шилдта или подобного.