Найти в Дзене
Rostozzz Rostozzz

Как написать первый плагин в Minecraft. Bukkit/Spigot - Язык Программирования Java.

Первый мой туториал, просто хочу донести инфу до людей которые хотят этим заниматься, но не знают где начать. Не судите строго.

Стоит отметить что навыки работы с серверами, так же как и опыт в программировании это очень хорошо и поможет вам в дальнейшем. Если нет, будет чуть сложнее это все понимать.

Писать наши плагины мы будем на Java, так что начать стоит с выбора среды разработки (IDE). Лично я начинал с Eclipse, потом перешел на IntelliJ IDEA. Просто качаем Eclipse и не паримся.

После запуска Eclipse предлагает нам создать рабочее пространство (workspace), размещаем где угодно, я оставлю как есть.

Ну, мы тут плагины писать собирались, так что давайте создадим наш проект. Снизу от Package Explorer нажимаем на Create a Java project.

-2

Вписываем в Project name имя вашего плагина. Далее - Finish. Теперь у нас есть проект, уже что-то. Смотрим версию нашего сервера, я лично буду писать на 1.12.2, вы можете учиться на любой другой версии. Некоторые моменты в написании кода под разные версии отличаются.

Для теста наших плагинов нам нужен локальный сервер, идём качать ядро. Bukkit или Spigot - значения не имеет, нам просто плагины потестить. Тестовый сервер в особой настройке не нуждается, просто выдаём себе опку и радуемся жизни.

Возвращаемся в Eclipse. На данный момент мы можем просто писать на Java и не париться, но нам нужно писать плагины. Нам нужно подключить библиотеку, наше ядро сервера. Прожимаем Alt + Enter, видим вот

-3

это.

Add External JARs, выбираем наше ядро, Apply and Close.

Снова прожимаем Alt +Enter, Java Compiler, убираем галочку под JDK Compliance, и ставим Compieler Compliance Level на 1.8, это важно.

-4

Всё, библиотеку мы подключили, теперь надо создать пакеты.

Пакеты в Java позволяют организовать классы логически в наборы. Кроме того, пакеты могут иметь вложенные пакеты ( можно создать пакет в пакете который в пакете, ы). ПКМ по src, new, Package. При названии пакета можете писать me.<ник>.<название плагина>

-5

Далее нужно создать главный класс. Я не могу тут объяснять что такое классы в Java, советую почитать об этом либо сейчас, либо позже. Для создания класса в нашем пакете, ПКМ по пакету, new, Class. Название главного класса должно совпадать с Plugin name.

-6

После этого вы должны увидеть примерно это.

-7

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

-8

Резонный вопрос: почему оно подчёркнуто? Все просто, мы не импортировали класс JavaPlugin. Если навести на ошибку, Eclipse предложит возможные варианты решения, первый из них, это и есть импорт.

Следующее что я предлагаю сделать, это сообщение в консоль сервера при включении нашего плагина. Любой плагин содержит метод 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() {			}}
Следующее что я предлагаю сделать, это сообщение в консоль сервера при включении нашего плагина. Любой плагин содержит метод 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.Logge

import org.bukkit.plugin.java.JavaPlugi

public class MyPlugin extends JavaPlugi

Logger log = getLogger(

@Override

public void onEnable()

log.info("Работает, аче")

@Override

public void onDisable()

-10

Методом getLogger() получаем наш логгер, записываем в переменную log. Класс Logger содержит в себе метод info(<сообщение>), котрый и выводит сообщение в консоль. Теперь можно и скомпилировать наш плагин, но для начала нужно добавить один файл: plugin.yml в src.

name: Имя плагина

main: Главный класс

version: Версия

Для экспорта кликаем File, Export, Java, JAR File. Указываем путь для экспорта, можете ставить сразу папку с плагинами на локальном сервере, ну и кликаем Finish.

-11

После запуска сервера, в консоль будет выведено сообщение о включении нашего плагина. Хоть консоль имеет некоторые проблемы с Русским языком, но это уже какой-то профит.

-12

Это только начало, и я буду писать ещё статьи на эту тему, если это кому-то интересно.