Основной класс плагина
Примечание
Документация Sponge рассчитана на тех, кто знает Java. API Sponge предоставляет основу для создания плагинов для серверов Minecraft, на которых установлен Sponge; однако, именно разработчик плагина должен быть творческим и создавать правильный программный код! Тем, у кого мало опыта в Java, рекомендуется сначала поискать в Интернете бесплатные курсы или учебники по Java.
Начинаем создание главного класса плагина
Следующий шаг, после добавления Sponge API в качестве зависимости, это создание нового класса. Класс может называться как угодно, и может быть в любом пакете, который не начинается с org.spongepowered
. По соглашению, каждое слово в имени класса должно начинаться с большой буквы.
Oracle рекомендует использовать ваш домен как имя пакета, если у вас есть домен. В противном случае, часто используется email адрес (например com.gmail.username.project
) или репозиторий с открытым исходным кодом (например io.github.username.project
).
После создания главного класса, необходимо добавить к нему аннотацию Plugin. Эта аннотация позволяет Sponge найти главный класс плагина при его загрузке. Пример использования показан ниже.
package io.github.username.project;
import org.spongepowered.api.plugin.Plugin;
@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
public class ExamplePlugin {
}
Примечание
Если Вы ещё не выбрали ID плагина, посмотрите статью Идентификаторы плагина.
Инициализация плагина
Плагины загружаются до загрузки самой игры и игровых миров. При этом существует промежуток времени, в который плагин может начать взаимодействовать с игрой, например зарегистрировать команды или события.
Плагин может слушать определенные события, называемые эвенты, чтобы получать уведомления об изменениях состояния игры. В примере ниже метод onServerStart()
вызывается когда возникает событие GameStartedServerEvent; обратите внимание на аннотацию Listener перед методом.
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
@Plugin(id = "exampleplugin", name = "Example Plugin", version = "1.0")
public class ExamplePlugin {
@Listener
public void onServerStart(GameStartedServerEvent event) {
// Hey! The server has started!
// Try instantiating your logger in here.
// (There's a guide for that)
}
}
Совет
Документация Sponge предоставляет более подробную информацию про события (смотрите События). Обычно, помимо добавления аннотации @Listener
, вам также необходимо зарегистрировать ваш слушатель. Однако главный класс плагина регистрируется автоматически.
События изменения состояния
Также, может быть полезно слушать другие события жизни сервера, особенно GameStoppingServerEvent
. Существует две категории события жизни сервера:
Инициализация: эти события происходят при загрузке Sponge и плагинов.
Запуск: эти события происходят при загрузке игры и игрового мира.
Для получения более подробной информации, когда вызывается каждое события жизни сервера, смотрите документацию жизненного цикла плагина.