Установка
Репозиторий
- Maven
- Gradle (Groovy DSL)
- Gradle (Kotlin DSL)
<repository>
<id>JodexIndustries</id>
<name>JodexIndustries Repo</name>
<url>https://repo.jodex.xyz/releases</url>
</repository>
repositories {
maven { url = 'https://repo.jodex.xyz/releases' }
}
repositories {
maven("https://repo.jodex.xyz/releases")
}
Установка и использование
Фрагменты доступны для Maven, Gradle Groovy и Gradle Kotlin DSL.
В зависимости от структуры вашего проекта, существует два способа использования библиотеки:
1. Использование как самостоятельный плагин (модуль api
)
- JGuiWrapper устанавливается как отдельный плагин на сервере.
- Ваш плагин просто подключается к его API без затенения.
- Maven
- Gradle (Groovy DSL)
- Gradle (Kotlin DSL)
<dependency>
<groupId>com.jodexindustries.jguiwrapper</groupId>
<artifactId>api</artifactId>
<version>loading</version>
<scope>provided</scope>
</dependency>
dependencies {
compileOnly("com.jodexindustries.jguiwrapper:api:loading")
}
dependencies {
compileOnly("com.jodexindustries.jguiwrapper:api:loading")
}
2. Встраивание в ваш проект (модуль common
)
- Вы напрямую включаете библиотеку и затеняете ее в конечный jar-файл с помощью
shade
(илиshadowJar
). - Не нужно устанавливать JGuiWrapper как отдельный плагин.
- Maven
- Gradle (Groovy DSL)
- Gradle (Kotlin DSL)
<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>
dependencies {
implementation("com.jodexindustries.jguiwrapper:common:loading")
}
Если вы хотите включить логику nms для управления заголовками
dependencies {
implementation("com.jodexindustries.jguiwrapper:nms:loading")
}
dependencies {
implementation("com.jodexindustries.jguiwrapper:common:loading")
}
Если вы хотите включить логику nms для управления заголовками
dependencies {
implementation("com.jodexindustries.jguiwrapper:nms:loading")
}
Общая инициализация
Использование библиотеки без отдельного плагина 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();
});