Files
FancyPlugins/plugins/fancydialogs/build.gradle.kts
2025-09-18 22:23:53 +02:00

202 lines
6.0 KiB
Kotlin

import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
import net.minecrell.pluginyml.paper.PaperPluginDescription
plugins {
id("java-library")
id("maven-publish")
id("xyz.jpenilla.run-paper")
id("com.gradleup.shadow")
id("de.eldoria.plugin-yml.paper")
id("io.papermc.hangar-publish-plugin")
id("com.modrinth.minotaur")
}
runPaper.folia.registerTask()
val supportedVersions =
listOf(
"1.21.6",
"1.21.7",
"1.21.8",
)
allprojects {
group = "de.oliver"
version = getFDVersion()
description = "Simple, lightweight and fast dialog plugin using the new dialog feature"
repositories {
mavenLocal()
mavenCentral()
maven(url = "https://repo.papermc.io/repository/maven-public/")
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
maven(url = "https://repo.fancyinnovations.com/snapshots")
maven(url = "https://repo.fancyinnovations.com/releases")
maven(url = "https://repo.lushplugins.org/releases")
maven(url = "https://repo.viaversion.com/")
maven(url = "https://repo.opencollab.dev/main/")
}
}
dependencies {
compileOnly("io.papermc.paper:paper-api:1.21.8-R0.1-SNAPSHOT")
implementation(project(":plugins:fancydialogs:fd-api"))
rootProject.subprojects
.filter { it.path.startsWith(":libraries:packets:implementations") }
.forEach { implementation(project(it.path)) }
implementation(project(":libraries:packets"))
implementation(project(":libraries:packets:packets-api"))
implementation(project(":libraries:common"))
implementation(project(":libraries:jdb"))
implementation(project(":libraries:config"))
implementation("de.oliver.FancyAnalytics:java-sdk:0.0.4")
implementation("de.oliver.FancyAnalytics:mc-api:0.1.11")
implementation("de.oliver.FancyAnalytics:logger:0.0.8")
compileOnly(project(":plugins:fancynpcs:fn-api"))
compileOnly("org.lushplugins:ChatColorHandler:6.0.2")
implementation("io.github.revxrsal:lamp.common:4.0.0-rc.12")
implementation("io.github.revxrsal:lamp.bukkit:4.0.0-rc.12")
implementation("org.jetbrains:annotations:24.0.0")
}
paper {
name = "FancyDialogs"
main = "com.fancyinnovations.fancydialogs.FancyDialogsPlugin"
bootstrapper = "com.fancyinnovations.fancydialogs.loaders.FancyDialogsBootstrapper"
loader = "com.fancyinnovations.fancydialogs.loaders.FancyDialogsLoader"
foliaSupported = true
version = getFDVersion()
description = "Simple, lightweight and fast dialog plugin using the new dialog feature"
apiVersion = "1.21"
load = BukkitPluginDescription.PluginLoadOrder.POSTWORLD
serverDependencies {
register("FancyNpcs") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("MiniPlaceholders") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
register("PlaceholderAPI") {
required = false
load = PaperPluginDescription.RelativeLoadOrder.BEFORE
}
}
}
tasks {
runServer {
minecraftVersion("1.21.8")
downloadPlugins {
modrinth("fancynpcs", "2.6.0.283")
// hangar("ViaVersion", "5.3.2")
// hangar("ViaBackwards", "5.3.2")
// modrinth("multiverse-core", "4.3.11")
hangar("PlaceholderAPI", "2.11.6")
}
}
shadowJar {
archiveClassifier.set("")
archiveBaseName.set("FancyDialogs")
dependsOn(":plugins:fancydialogs:fd-api:shadowJar")
}
compileJava {
options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything
options.release = 21
// For cloud-annotations, see https://cloud.incendo.org/annotations/#command-components
options.compilerArgs.add("-parameters")
}
javadoc {
options.encoding = Charsets.UTF_8.name() // We want UTF-8 for everything
}
processResources {
filteringCharset = Charsets.UTF_8.name() // We want UTF-8 for everything
val props = mapOf(
"description" to project.description,
"version" to getFDVersion(),
"commit_hash" to gitCommitHash.get(),
"channel" to (System.getenv("RELEASE_CHANNEL") ?: "").ifEmpty { "undefined" },
"platform" to (System.getenv("RELEASE_PLATFORM") ?: "").ifEmpty { "undefined" }
)
inputs.properties(props)
filesMatching("paper-plugin.yml") {
expand(props)
}
filesMatching("version.yml") {
expand(props)
}
}
}
tasks.publishAllPublicationsToHangar {
dependsOn("shadowJar")
}
tasks.modrinth {
dependsOn("shadowJar")
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
}
val gitCommitHash: Provider<String> = providers.exec {
commandLine("git", "rev-parse", "HEAD")
}.standardOutput.asText.map { it.trim() }
val gitCommitMessage: Provider<String> = providers.exec {
commandLine("git", "log", "-1", "--pretty=%B")
}.standardOutput.asText.map { it.trim() }
fun getFDVersion(): String {
return file("VERSION").readText()
}
hangarPublish {
publications.register("plugin") {
version = project.version as String
id = "FancyDialogs"
channel = "Alpha"
apiKey.set(System.getenv("HANGAR_PUBLISH_API_TOKEN"))
platforms {
paper {
jar = tasks.shadowJar.flatMap { it.archiveFile }
platformVersions = supportedVersions
}
}
changelog = gitCommitMessage.get()
}
}
modrinth {
token.set(System.getenv("MODRINTH_PUBLISH_API_TOKEN"))
projectId.set("FancyDialogs")
versionNumber.set(getFDVersion())
versionType.set("alpha")
uploadFile.set(file("build/libs/${project.name}-${getFDVersion()}.jar"))
gameVersions.addAll(supportedVersions)
loaders.add("paper")
loaders.add("folia")
changelog.set(gitCommitMessage.get())
}