Перейти к основному содержимому
Версия: 2.1.0

Установка

MavenRepo JavaDocs

Репозиторий

<repository>
<id>JodexIndustries</id>
<name>JodexIndustries Repo</name>
<url>https://repo.jodex.xyz/releases</url>
</repository>

Установка и использование

Фрагменты доступны для Maven, Gradle Groovy и Gradle Kotlin DSL.

В зависимости от структуры вашего проекта, существует два способа использования библиотеки:

1. Использование как самостоятельный плагин (модуль api)

  • JGuiWrapper устанавливается как отдельный плагин на сервере.
  • Ваш плагин просто подключается к его API без затенения.
<dependency>
<groupId>com.jodexindustries.jguiwrapper</groupId>
<artifactId>api</artifactId>
<version>loading</version>
<scope>provided</scope>
</dependency>

2. Встраивание в ваш проект (модуль common)

  • Вы напрямую включаете библиотеку и затеняете ее в конечный jar-файл с помощью shade (или shadowJar).
  • Не нужно устанавливать JGuiWrapper как отдельный плагин.
<dependency>
<groupId>com.jodexindustries.jguiwrapper</groupId>
<artifactId>common</artifactId>
<version>loading</version>
<scope>compile</scope>
</dependency>

Если вы хотите включить логику nms для управления заголовками

<dependency>
<groupId>com.jodexindustries.jguiwrapper</groupId>
<artifactId>nms</artifactId>
<version>loading</version>
<scope>compile</scope>
</dependency>

Общая инициализация

внимание

Использование библиотеки без отдельного плагина JGuiWrapper требует инициализации слушателей в вашем основном классе плагина.

@Override
public void onEnable() {
JGuiInitializer.init(this); // регистрирует всех слушателей
}

После вызова init вы можете создавать и открывать графические интерфейсы для любого игрока.


API

Общедоступные api методы можно найти в классе GuiApi, который является родительским классом JGuiInitializer.

GuiApi api = GuiApi.get();
внимание

Стоит отметить, что GuiApi#get() может выдать ошибку инициализации, так как не был выполнен вызов JGuiInitializer#init(Plugin), что означает, что API не было инициализировано.

Безопасный доступ к API

Иногда случается так, что инициализация может вызываться позже определенной логики с взаимодействием с GuiApi, поэтому стоит использовать GuiApi#getOptional()

GuiApi.getOptional().ifPresent(api -> {
Plugin plugin = api.getPlugin();
});