Skip to content

FloriaDev/Floria

Repository files navigation

📄 Подробнее о доступных 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 для модулей

Для сборки модулей используйте следующую конфигурацию 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("")
}

⚡ Live Templates для IntelliJ IDEA

📝 Как добавить Live Templates

  1. Откройте настройки IDEA: File → Settings (или Ctrl+Alt+S)
  2. Перейдите в раздел: Editor → Live Templates
  3. Создайте новую группу (например, Floria)
  4. Добавьте шаблоны из таблицы ниже:

🎯 Доступные шаблоны

Аббревиатура Описание
foldcommand Сворачиваемый блок для команд
getService Получение сервиса
getOptionalService Безопасное получение сервиса
getConfig Получение конфигурации
getOptionalConfig Безопасное получение конфигурации
getTable Получение таблицы
getOptionalTable Безопасное получение таблицы

Для каждого шаблона укажите:

  • Context: Java

foldcommand

//<editor-fold desc="CommandMethods" defaultstate="collapsed">
    $SELECTION$
//</editor-fold>

getService

getPlugin().getService($CLASS$.class)

getOptionalService

getPlugin().getService($CLASS$.class).orElseThrow(() -> {
    Logger.error().log("Ошибка сервиса в классе {}", getClass().getSimpleName());
    return new IllegalStateException();
})

getConfig

getPlugin().getConfig($CLASS$.class)

getOptionalConfig

getPlugin().getConfig($CLASS$.class).orElseThrow(() -> {
    Logger.error().log("Ошибка конфига в классе {}", getClass().getSimpleName());
    return new IllegalStateException();
})

getTable

getPlugin().getService($CLASS1$.class).getTable($CLASS2$.class)

getOptionalTable

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();
})

About

Floria (UnFamousSoul Backup).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors