Bukkit и Minecraft используют язык программирования Java. Вы будете писать все свои плагины на Java. Причина, по которой Bukkit использует Java, заключается в том, что Minecraft изначально написан на нем. Отсюда Minecraft: Java Edition.

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

Теперь приступим к программированию нашего плагина.

Написание основного класса

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

Импорт библиотеки плагинов Bukkit

В верхней части нашего файла Main.java (но ниже нашего оператора пакета) нам нужно импортировать библиотеку Bukkit. Просто добавьте эту строку кода:

import org.bukkit.plugin.java.JavaPlugin

Теперь нам нужно расширить наш класс с помощью JavaPlugin. Чтобы расширить наш класс, поместите extends JavaPlugin после public class Main, но перед закрывающей фигурной скобкой {.

Итак, наш файл Main.class должен выглядеть так:

package org.ethan.flyplugin
import org.bukkit.plugin.java.JavaPlugin
public class Main extends JavaPlugin{
}

onEnable и onDisable

Нам нужно изучить две функции Bukkit. Это onEnable() и onDisable(). Это первые функции, которые разработчик плагина помещает в свой основной класс. Эти функции очень простые, название описывает, что они делают. onEnable() запускается каждый раз, когда подключаемый модуль включен, а onDisable() запускается каждый раз, когда подключаемый модуль отключен.

Таким образом, эти функции запускаются при запуске сервера (onEnable) и при его завершении (onDisable). Чтобы написать эти функции, мы помещаем это в основной класс:

@Override
public void onEnable(){
}
@Override
public void onDisable(){
}

Метод @Override на самом деле не нужен, поскольку Java автоматически переопределит функцию за вас, однако рекомендуется поместить его туда, чтобы сообщить программисту, что эта функция переопределяется. Подробнее о наследовании можно узнать здесь: https://docs.oracle.com/javase/specs/jls/se14/html/jls-8.html#jls-8.4.8

В эти созданные нами функции мы можем поместить все, что захотим. Мы можем заниматься арифметикой, мы можем войти в консоль, что угодно. Для начала я хочу добавить сообщение в консоль. Для этого мы будем использовать встроенную функцию Java, System.out.println():

public void onEnable(){
    System.out.println(ChatColor.GREEN + "[Fly Plugin] Fly plugin initiated");
}

На консоль сервера будет отправлено сообщение зеленого цвета: «[Плагин Fly] Плагин Fly запущен». Во-первых, чтобы получить цвета консоли, нам нужно импортировать класс. В нашем импорте JavaPlugin:

import org.bukkit.ChatColor;

Теперь мы можем добавлять цвета чата, комбинируя их со строками, как показано выше. Я также добавлю это в свою функцию onDisable:

@Override
public void onDisable(){
    System.out.println(ChatColor.RED + "[Fly Plugin] Fly plugin shutting down");
}

Тестирование базового плагина

Теперь мы можем протестировать этот базовый плагин, построив его как артефакт! Чтобы создать файл jar, нажмите build на верхней панели инструментов, нажмите B uild Artifacts…, затем выберите Build.

Это выведет файл .JAR, скопируйте этот файл в папку плагинов вашего сервера. Затем запустите сервер. Когда сервер завершит загрузку, вы увидите сообщение, которое мы указали в нашей функции onEnable.

Теперь, если мы введем stop в консоли, нам будет показано сообщение нашей функции onDisable:

Отличная работа, вы только что создали свой первый плагин! Надеюсь, вам понравилось, и не забудьте подписаться на меня (чтобы получить часть 3).

Часть 3: неизданная