📄 Подробнее о доступных Gradle задачах проекта Floria см. в TASKS.md
📄 Подробнее о доступных Gradle задачах проекта ModuleSystem см. в TASKS.md
Для корректной работы системы модулей необходимо настроить глобальные пути сборки в Git. Выполните следующие команды в терминале:
# Путь для ModuleSystem-Paper
git config --global floria.modulesystem-paper.buildpath "C:/Users/andre/Dekstop/folia11/plugins"
# Путь для ModuleAPI-Paper
git config --global floria.moduleapi-paper.buildpath "C:/Users/andre/IdeaProject/Floria/modules/libs"
# Путь для модулей Paper
git config --global floria.modules-paper.buildpath "C:/Users/andre/Dekstop/folia11/plugins/ModuleSystem/modules"
# Путь для ModuleSystem-Velocity
git config --global floria.modulesystem-velocity.buildpath "C:/Users/andre/Dekstop/folia11/plugins"
# Путь для ModuleAPI-Velocity
git config --global floria.moduleapi-velocity.buildpath "C:/Users/andre/IdeaProject/Floria/modules/libs"
# Путь для модулей Velocity
git config --global floria.modules-velocity.buildpath "C:/Users/andre/Dekstop/folia11/plugins/ModuleSystem/modules"Для сборки модулей используйте следующую конфигурацию build.gradle:
plugins {
id 'java'
id "io.github.goooler.shadow" version "8.1.8"
}
group = 'ru.feeland'
repositories {
mavenCentral()
maven {
name = "papermc-repo"
url = "https://repo.papermc.io/repository/maven-public/"
}
maven {
name = "Canvas"
url = uri("https://maven.canvasmc.io/snapshots")
}
maven {
name = 'placeholderapi'
url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/'
}
}
def moduleApiProject = project.rootProject.findProject(":ModuleSystem:ModuleAPI-Paper")
def targetApi = rootProject.findProperty("targetApi") ?: "paper"
println "Building ModuleSystem for: $targetApi"
dependencies {
if (targetApi == "folia") {
compileOnly("dev.folia:folia-api:1.21.11-R0.1-SNAPSHOT")
} else if (targetApi == "canvas") {
compileOnly("io.canvasmc.canvas:canvas-api:1.21.11-R0.1-SNAPSHOT")
} else {
compileOnly "io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT"
}
if (moduleApiProject != null) {
compileOnly(project(':ModuleSystem:ModuleAPI-Paper'))
} else {
compileOnly(fileTree(dir: '../libs', include: ['ModuleAPI-Paper.jar']))
}
}
tasks.named('compileJava') {
if (project.rootProject.findProject(":ModuleSystem:ModuleAPI-Paper") != null) {
dependsOn(":ModuleSystem:ModuleAPI-Paper:shadowJar")
}
}
shadowJar {
def modulesPath = "git config --global --get floria.modules-paper.buildpath".execute().text.trim()
if (modulesPath != null && !modulesPath.allWhitespace) {
destinationDirectory = file(modulesPath)
}
archiveClassifier.set("")
}- Откройте настройки IDEA:
File → Settings(илиCtrl+Alt+S) - Перейдите в раздел:
Editor → Live Templates - Создайте новую группу (например,
Floria) - Добавьте шаблоны из таблицы ниже:
| Аббревиатура | Описание |
|---|---|
foldcommand |
Сворачиваемый блок для команд |
getService |
Получение сервиса |
getOptionalService |
Безопасное получение сервиса |
getConfig |
Получение конфигурации |
getOptionalConfig |
Безопасное получение конфигурации |
getTable |
Получение таблицы |
getOptionalTable |
Безопасное получение таблицы |
Для каждого шаблона укажите:
- Context:
Java
//<editor-fold desc="CommandMethods" defaultstate="collapsed">
$SELECTION$
//</editor-fold>getPlugin().getService($CLASS$.class)getPlugin().getService($CLASS$.class).orElseThrow(() -> {
Logger.error().log("Ошибка сервиса в классе {}", getClass().getSimpleName());
return new IllegalStateException();
})getPlugin().getConfig($CLASS$.class)getPlugin().getConfig($CLASS$.class).orElseThrow(() -> {
Logger.error().log("Ошибка конфига в классе {}", getClass().getSimpleName());
return new IllegalStateException();
})getPlugin().getService($CLASS1$.class).getTable($CLASS2$.class)getPlugin().getService($CLASS1$.class).orElseThrow(() -> {
Logger.error().log("Ошибка сервиса в классе {}", getClass().getSimpleName());
return new IllegalStateException();
}).getTable($CLASS2$.class).orElseThrow(() -> {
Logger.error().log("Ошибка таблицы в классе {}", getClass().getSimpleName());
return new IllegalStateException();
})