Skip to main content
Версія: 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();
});